Skip to content

Commit

Permalink
调整计算机网络中TCP/IP文章中的编辑细节
Browse files Browse the repository at this point in the history
  • Loading branch information
Notzuonotdied committed Feb 9, 2018
1 parent ddd1790 commit 905f2ba
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions computer-networks/tcpip.md
Expand Up @@ -159,7 +159,7 @@ TCP/UDP都是是传输层协议,但是两者具有不同的特性,同时也

##### 面向报文

面向报文的传输方式是应用层交给UDP多长的报文,UDP发送多长的报文,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率;若太短,会使IP数据包太小
面向报文的传输方式是应用层交给UDP多长的报文,UDP发送多长的报文,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率;若太短,会使IP数据报太小

##### 面向字节流

Expand Down Expand Up @@ -197,14 +197,11 @@ TCP是面向连接的,无论哪一方向另一方发送数据之前,都必

![](http://upload-images.jianshu.io/upload_images/3985563-cd5a153e44696643.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)




**第一次握手:** 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN\_SEND状态,等待服务器的确认;

**第二次握手:** 服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x + 1\(Sequence Number + 1\);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN\_RECV状态;

**第三次握手:** 客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y + 1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
| 回合 | 说明 |
| ------ | ---------- |
| **第一次握手** | 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN\_SEND状态,等待服务器的确认; |
| **第二次握手** | 服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x + 1\(Sequence Number + 1\);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN\_RECV状态; |
| **第三次握手** | 客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y + 1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。 |

##### 为什么要三次握手?

Expand Down Expand Up @@ -267,7 +264,7 @@ MSL:报文段最大生存时间,它是任何报文段被丢弃前在网络

从图中可以看出,B进行了三次流量控制。第一次把窗口减少到 rwnd = 300 ,第二次又减到了 rwnd = 100 ,最后减到 rwnd = 0 ,即不允许发送方再发送数据了。这种使发送方暂停发送的状态将持续到主机B重新发出一个新的窗口值为止。B向A发送的三个报文段都设置了 ACK = 1 ,只有在ACK=1时确认号字段才有意义。

TCP为每一个连接设有一个持续计时器\(persistence timer\)。当TCP连接中的发送方收到接收方的零窗口通知时,发送方就启动持续计时器。若持续计时器设置的时间到期,就发送一个零窗口控测报文段(携1字节的数据)给接收方。如果接收方可以接收数据就重新开始发送数据;如果接收方不能接收数据,就重新设置持续计时器。
TCP为每一个连接设有一个持续计时器\(persistence timer\)。当TCP连接中的发送方收到接收方的零窗口通知时,发送方就启动持续计时器。若持续计时器设置的时间到期,发送方就发送一个零窗口控测报文段(携1字节的数据)给接收方。如果接收方可以接收数据,就重新开始发送数据;如果接收方不能接收数据,就重新设置持续计时器。

### 十、TCP拥塞控制

Expand Down

0 comments on commit 905f2ba

Please sign in to comment.