TCP协议 有更新!

  ,
评论 • 154 浏览

OSI网络七层模型

osi网络七层模型是一个国际范围内的网络体系结构标准。可以使不同的计算机能够互相通信,建立计算机网络。

各层主要功能

低三层

  • 物理层:使原始的数据比特流能在物理介质上传输。
  • 数据链路层:通过校验、确认和反馈重发等手段,形成稳定的数据链路。
  • 网络层:进行路由选择和流量控制。(IP协议/ICMP/ARP/RARP)

传输层:提供端口到端口的数据传输服务。(TCP/UDP协议)

高三层

  • 会话层:负责建立、管理和终止进程之间的会话和数据交换。
  • 表示层:负责数据格式转换、数据加密与解密、压缩与解压缩等。
  • 应用层:为用户的应用进程提供网络服务。

有地方也把高三层统称应用层。

传输控制协议TCP

传输控制协议(TCP)是Internet中一个很重要的传输层协议。TCP提供面向连接、可靠、有序、字节流服务。应用程序在使用TCP之前必须建立TCP连接。

TCP报文格式

TCPpng

TCP报文如图所示,具体各段含义请查询相关文档。
简单介绍下标志位:

  • URG:紧急指针
  • ACK:确认序号
  • PSH:有DATA数据传输
  • RST:连接重置
  • SYN:建立连接
  • FIN:关闭连接

TCP三次握手机制

三次握手
- 1:首先客户端发起连接请求,SYN=1,Seq=x。
- 2:服务端收到请求,发送回执等待确认。SYN=1,ACK=1,Seq=y,ack_seq=x+1。
- 3:客户端服务端建立连接。ACK=1,seq=x+1,ack_seq=y+1

TCP四次挥手机制

四次挥手

  • 1:首先客户端发起关闭连接请求,客户端处于等待确认状态。FIN=1,seq=u
  • 2:服务端接收到请求,发送回执,处于半关闭状态,客户端收到回执后处于等待释放状态。ACK=1,seq=v,ack_seq=u+1
  • 3:服务端发送断开请求,处于等待确认状态。FIN=1,ACK=1,seq=w,ack_seq=u+1
  • 4:客户端回执,确认断开。ACK=1,seq=u+1,ack_seq=w+1。随后客户端会等会关闭。服务端收到请求后就会关闭。

用户数据报文UDP

用户数据报文UDP是Internet传输层协议。提供无连接,不可靠,数据报尽力传输服务。
UDPpng

UDP特点:

  • 无需建立连接
  • 无连接状态
  • 首部开销小

UDP适用于物联网,视频等场景。

TCP和UDP比较

TCPUDP
面向连接无连接
提供可靠性保证不可靠
资源占用多资源占用少

socket编程

数据报类型套接字UDP:SOCK_DGRAM
流式套接字TCP:SOCK_STREAM
原始套接字IP、ICMP:SOCK_RAW

评论
validate