<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>计算机网络 on 华说记录我的生活</title>
    <link>http://www.huasay.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/</link>
    <description>Recent content in 计算机网络 on 华说记录我的生活</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh</language>
    <lastBuildDate>Fri, 21 Aug 2020 00:54:04 +0800</lastBuildDate>
    <atom:link href="http://www.huasay.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>计算机网络 - tcp协议</title>
      <link>http://www.huasay.com/2020/08/21/computer-network-series-tcp/</link>
      <pubDate>Fri, 21 Aug 2020 00:54:04 +0800</pubDate>
      <guid>http://www.huasay.com/2020/08/21/computer-network-series-tcp/</guid>
      <description>定义 TCP提供一种面向连接的、可靠的字节流服务。所谓面向连接，即应用程序在使用TCP协议之前，必须先建立TCP连接，在传送数据完毕后，必须释放已经建立的连接。这个过程可以通俗的比喻成通话过程，在通话之前，必须先拨通号码，对方也必须接听，之后才可以通话。 所谓可靠的服务，即表示TCP连接传送的数据可以做到无差错，不丢失，不重复等。
握手 TCP的传输需要先建立连接，整个建立连接的过程一般称为三次握手
为什么是三次，不是两次，甚至更多 建立连接的过程是要保证双方可通信。比如邀请女神约会，我们都得先确定可以去，女神也得确定我可以去，不然谁先到约会地点就谁尴尬，容易被放鸽子。
我 &amp;ndash;&amp;gt; 明天晚上可以一起看电影么？ &amp;ndash;&amp;gt; 女神
女神 &amp;ndash;&amp;gt; 可以啊 &amp;ndash;&amp;gt; 我
如果两次握手是这样的，第一，女神这边确认是可以收到消息的了，我这边是确认可以发送消息的了。但女神那侧也并不确认自己是发送成功了，那怎么判断能发送成功，只能通过我这方再次发送通知过去才可以。
我 &amp;ndash;&amp;gt; 收到啦，一言为定 &amp;ndash;&amp;gt; 女神
当进行了第三次握手的时候，我们双方才能确定，前两次的话是生效了，三次握手的目标就是使双方心里都有底，确保双方最基本的发送与接收功能正常。女神可以确认自己的收发能力都OK，我也确认了自己的收发能力OK，才能最基本上的保证不被放鸽子，双方心里都有底。
为什么不是更多？
因为三次握手是确保双方通信条件都OK的最基本的方式，如果更多次，当然也可以，但是，会增加网络的消耗，4次，甚至5次&amp;hellip;N（N&amp;gt;5）次，也只能确保前N-1是正常的，也不能确保之后通信就是完全正常，所以3次是最好的握手判断。
三次握手的过程 TCP 报文 源端口与目的端口，各占2字节，16位 序号，4个字节，0~$$2^32$$ -1。起始序号在连接建立时设置，首部中的序号是指本报文段所发送的数据的第一个字节的序号。
例如，一个报文段第一个字节序号是301，最后一个字节序号是400，则下一个报文段的数据序号就得401. 确认序号，4个字节，期望收到对方下一个段文段的第一个字节的序号。
例如，收到了对方发来的报文段，序号字段是501，数据长度是200字节，则期望收到对方下一个数据序号为701，此时，就将发送给对方的确认序号设置成701. 首部长度，4位。首部长度最小为20个字节，但因为包含选项（不定长)，但最大长度只能是60个字节。因为该值长度为4位，4位最大值表示15，也代表整个首部最长为60字节，选项长度最大为40字节 保留位，6位，为今后所用，目前应置为0 紧急URG（URGent）当URG = 1时，表明紧急指针字段有效，与紧急指针字段配合使用，代表该报文段中有紧急数据，需加急处理 确认ACK（ACKnowledgment）当ACK = 1时确认号字段有有效，ACK = 0时，确认号无效，在连接建立后，所有传送的报文段都必须置ACK = 1 推送PSH（PuSH）两应用程序进行交互式通信时使用，当PSH = 1时，接收方应尽快的交付接收应用进程，不用等缓存满了再向上交付。该操作很少使用 复位RST (ReSeT) 当RST = 1时，表明TCP连接中出现严重差错（如主机崩溃），必须释放连接，然后再重新建立连接。RST = 1还用来拒绝非法报文段或拒绝打开一个连接 同步SYN（SYNchronization）在连接建立时用来同步序号。SYN = 1而ACK = 0时，说明这是一个连接请求报文段。对方若同意建立连接，则应在响应报文中设置SYN = 1 ，ACK = 1. 终止FIN （FINis）用来释放一个连接，当FIN = 1时，表明报文段的发送方数据已发送完毕，并要求释放连接 窗口 2字节，用于告诉对方，允许对方发送的数据量大小，自己的缓存空间还可接收多少数据量。 校验和 2字节，检验首部与数据 紧急指针 2字节。URG = 1时配合使用，本报文中紧急数据的末尾在报文中的位置 选项 最长40字节 挥手 为什么是4次，不是3次，甚至更少 4次挥手过程 如何实现可靠性 </description>
    </item>
    <item>
      <title>计算机网络系列 - 笔记</title>
      <link>http://www.huasay.com/2020/08/15/computer-network-series/</link>
      <pubDate>Sat, 15 Aug 2020 23:02:52 +0800</pubDate>
      <guid>http://www.huasay.com/2020/08/15/computer-network-series/</guid>
      <description>此系列用于记录计算机网络相关的知识要点
一来，复习巩固这一块的知识，防止每次用到相关知识却各种的查找资料。
二来，加强这一块的学习，自己之前也有很多不懂的地方，需要记录与学习
目前分以下下节整理
物理层 数据链接层 传输层 3.1 传输层 - TCP 3.2 传输层 - UDP 网络层 应用层 常用协议 DHCP 常用协议 ICMP 常用协议 ARP DNS </description>
    </item>
  </channel>
</rss>
