Tcp协议:tcp是面向连接的,可靠的进程到进程通信的协议。可以双向传输,可以发送和接受缓存

Udp协议:无连接,不保证可靠性的传输层协议。可靠性由上层协议保障,传输数据速度更快,效率更高

Tcp特性:1.工作在传输层;2.面向连接协议;3.全双工协议;4.半关闭;5.错误检查;6.将数据打包成段,排序;7.确认机制;8.数据恢复,重传;9.流量控制,滑动窗口。

Udp特性:1.工作在传输层;2.不稳定;3.无连接;4.有限的错误检查;5.传输性能高;6.无数据恢复。

端口号:确认进程。可以分为三类:1.规定好的知名端口号2.系统随机分配3.人类自由使用。

 

源端口号、目标端口号:确认哪两个进程需要通信。

序列号:数据的第一个字节编号。Seq=x。

确认号:希望对方下一个数据的第一个字节编号。Ack=x+1。

数据偏移、首部长度:Tcp的首部长度,指定Tcp报文段有多长。

窗口大小:表示允许对方发送的数据量。

校验和:标志紧急数据在数据字段的位置。

控制位:

URG(紧急位):当URG=1时,后面的紧急数据才生效。

ACK(确认位):当ACK=1时,前面的确认号字段才有效。 

PSH(急切位):当PSH=1时,对方应将数据提交给上层应用。

RST(重置位):当RST=1时,说明与主机连接出错,要重新建立连接。

SYN(同步位):建立连接时使用。当SYN=1,ACK=0,这是一个请求建立连接的报文;当SYN=1,ACK=1,表示对方同意建立连接。

FIN(断开位):当FIN=1,表示对方本端要关闭连接。

 

Tcp三次握手

过程:当客户端想要建立连接时,会主动发送一个报文,报文的序号是随机产生的数x,同步位SYN为1。代表客户端请求建立连接。

当服务端收到这个报文,会给客户端回复一个报文。这个报文的序号是随机产生的数y,确认号字段为客户端序号x+1,同步位SYN为1,确认位ACK为1。代表服务端同意建立连接。

当客户端收到服务端同意建立连接的报文后,会回复一个确认报文,报文的序号是对方要求的x+1,确认号字段位服务端序号y+1,确认位ACK为1。代表收到服务端同意连接的请求。

来回发送三次的原因是因为网络环境复杂,为了确保数据能够到达。2次不够,4次太多。

状态机

客户端会出现: sys-sent(同步已发送)  estab-lished(已建立连接)

服务端会出现:listen(监听)  syn-rcvd(同步收到)  estab-lished(已建立连接)

Tcp断开连接的四次挥手

客户端会先发送一个FIN给服务端,自己进入FIN_WAIT_1状态,等待接受服务端报文,该报文会有两种可能:

ACK=1  进入半关闭  怕有数据没有传输完毕

ACK=1 FIN=1  同意断开

自己系统怎么区分应用程序  pid号

两台电脑怎么区分应用程序  端口号

Telnet协议:远程连接协议 

telnet IP地址 端口号 80  检查服务软件是否正常(当禁Ping时使用)

 

,

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: