不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

TCP/UDP

上一篇 / 下一篇  2007-04-18 10:10:36 / 个人分类:Mercury LoadRunner

p(wV8dG `0UDP为用户数据报协议,提供无连接服务,每个数据报都有一定长度。UDP不关心数据是否发送成功,这一切需要上层来保证。51Testing软件测试网SSB1ik0{`3_
TCP为传输控制协议,提供面向连接,给用户提供全双工的字节流。TCP关心确认、超时和重传等细节。tcp提供流量控制,告诉对方自己的通告窗口(advertised window)

(WbPI;g(M.G&c051Testing软件测试网U0zw*Z5rc8^0PBKMw

TCP连接的三次握手51Testing软件测试网 t6^D'MRfV KG
TCP在建立连接的时候需要三次交互:51Testing软件测试网 _"O0F$B@ P0Twn
首先,服务器端需要创建SOCKET,并执行bind,listen,监听端口51Testing软件测试网Au)C4XCPK`e
1。客户端调用connect函数,这将导致客户端发送一个SYN分节,在SYN中将标明客户端在后续的发送数据中使用的初始序列号k。
}U4^{.y6R I8H02。服务器端对该SYN进行确认,返回一个ACK(确认应答acknowledge),在ACK中含有服务器期待客户端后续数据的序列号,通常为K+1,另外服务器还发送一个同步分节SYN,里面标明服务器端即将发送数据的初始序列号J。51Testing软件测试网cek,G%j"{#I
3。客户端对该SYN进行确认,同时含有J+1。51Testing软件测试网:j6]l*SZ lguOA
一般每个SYN中含有MSS选项,用来通知对方自己的所能接受的最大分节大小。51Testing软件测试网 {,KX!bBrl

51Testing软件测试网$]5u[%XZ1pY(N O p(d

关闭TCP连接51Testing软件测试网l4k8FU+qP
1。某个应用程序调用close,称这一端为主动关闭(active close)。该端将向另一端发送一个FIN分节,表明数据发送完毕。51Testing软件测试网]xY3I#uBY
2。收到FIN的一端执行被动关闭(passive close)。TCP对该FIN进行确认,并将该FIN作为文件结束符传递给应用程序。
c;v~ B\ J03。一段时间后,收到FIN的应用程序调用close。这将导致该另一端发送一个FIN。
C6x;GM0T04。主动关闭这一方对该FIN进行确认。
[#L)A/Y:rdwi5Y0主动关闭一方在发送FIN后将进入TIME_WAIT状态。该状态将持续最长分节生命期MSL的两倍。51Testing软件测试网 p:?%rd,\-W8q*F-h

51Testing软件测试网:L5u%u"d9V

主要是为了:
-U6T4R$m [-R0 1.实现终止TCP全双工连接的可靠性
s*mt;s.@6f+^'M"{0 2.允许老的重复分节在网络中消失51Testing软件测试网X"r&b&oOA7mT:US:AG

t2I._f V0在IPv4中,一个ip数据报的最大大小是65535字节,包括ip头部。当一个IP数据报发出时,如51Testing软件测试网m KVvG'Y'q6B+v

51Testing软件测试网%xaE;XU4Ww`)?

果他的大小超过相应链路的MTU,IPv4将会对数据报执行分片。IPv4主机会对其产生的数据报

p n/H gM%q+G z)r0

v:lix-o:X Ke3Z0执行分片,IPv4路由器对其转发的数据报也会执行分片。另外,IPv4头部有一个选项DF,用来51Testing软件测试网:I V`kN

E5Z2j E$oYjJ0表示该数据报不允许分片。如果一个路由器收到一DF设置的数据报且该数据报大小超过MTU,

/e"Ad5QUp`}6F:X051Testing软件测试网P(iZ*Ip`Yt

则会产生一个ICMPv4的出错消息。

wL&bpH5O:Zp0a0

!DXYh%[C|A2_U%K0每个TCP套接字有一个发送缓冲区,当调用write时,内核将从应用程序的缓冲区中拷贝所有51Testing软件测试网9vJJ3U T eS

2[ u,P2i;P7zAud0数据到套接口的发送缓冲区。当套接字的缓冲区不够大,应用程序将被挂起直到套接字的缓

(OP.R |F"CS-e^#A051Testing软件测试网+j4\CW&V

冲区可以容纳应用程序的缓冲区。在TCP将缓冲区的数据发送出去后,他将在收到对方的确认51Testing软件测试网)D$sP|UV3` N[

51Testing软件测试网_*ACO"qv$u+H,s

后才将发送数据删除。
:Sf} AEnY0TCP以MSS(Maximum Segment Size最大报文段长度)大小或更小的块发送数据到IP,其中MSS是由对方通告的。如果对方为通告则用536

p!hWs*T^\ J/x:B0

TAG:

 

评分:0

我来说两句

Open Toolbar