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时使用)
,
推荐链接
发表评论