您的位置:首页 > 理论基础 > 计算机网络

TCP--IP详解之一(基本概念)

2013-12-26 21:34 387 查看
1.        TCP面向连接、可靠保证

1.1.       有连接的建立过程

1.2.       发送的数据需要确认,超时则需要重传

1.3.       有序列号,需要重组数据包

1.4.       流量控制,(窗口大小)

1.5.       全双工

UDP如果要可靠,则需要在应用层实现1、2、3、4的功能。

2.        TCP相应的选项

2.1.       窗口大小:对应于设置的接收缓冲区大小(SO_RCVBUF)。

TCP为真正的缓冲区大小。是为了流量控制。如果对方缓冲区不够时,数据不会发送给对方,但是这时候是已经写到本地的发送缓冲区了。另外如果发送缓冲区不够时,数据写操作是不会成功(阻塞,或失败)。写成功只表示放入发送缓冲区,还没发送给对方。且如果没有确认,则不会从缓冲区删除。

UDP则没有缓冲区的概念,其缓冲区大小表示的是一次发送数据时的最大数据报长度,如果超过长度则直接报错。内核以某种形式临时保留用户要发的数据,一旦链路层发送数据后,则删除该缓冲。写成功表示加入了链路层的输出队列,如果队列不能存放该数据,则直接返回ENOBUFS(但实现一般不严格)。

2.2.       MSS:TCP分节的最大数据量(TCP_MAXSEG)

一个TCP分节的最大数据量,为了减少IP层往链路层发送时减少分包。一般为MTU-40(60,IPV6)。MTU一般为1500。因此IPV4一般为1460。最大可以为65535-40(65495)。

2.3.       MTU

链路层上限制的包大小。由物理线路决定的。一般为1500。

3.        时间相关的术语

3.1.       RTT(round-trip time)包的一次往返时间。

3.2.       MSL(maximum segment life)包的最大存活时间,为时间值。

3.3.       TTL(time to live)包的存活时间。为经过的路由器跳数。

4.        TCP关闭

4.1.       Shutdown执行半关闭

4.2.       SO_LINGER设置,影响Close行为。

4.3.       TIME_WAIT状态,2MSL

主动方才会进入。

两个原因需要2MSL状态。一是TCP全双工关闭;二是允许旧的重复分节在网络中消失。

4.4.       CLOSE_WAIT状态

被动关闭的一方,如果已经给对方响应了其FIN,但自己还没有关闭,则处于这个状态。      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: