TCP/IP那些你需要掌握的知识

 什么是TCP/IP?

  TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。并不只有TCP与IP两种协议,而是一个应用于不同网络间信息传输的协议簇,它对网络中各结构层次的通信制定了标准和方法。TCP/IP包含了很多协议,常见的协议包括IP、FTP、TCP、UDP、SMTP等。

 

OSI型和TCP/IP 四模型

 OSI七层模型:开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT) 联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架

  •  用层: 网络服务与最的一个接,常协议有:HTTP FTP SMTP SNMP DNS.
  •  层: 数据的表、安全、。,确保一个系用层可以一个系用层读
  •  会话层: 建理、终止会话,对应机进程本地行的会话.

  • 传输层: 定义传输数据的协议端口号,以及流控差错校验,协议TCP UDP.

  • 网络层: 逻辑地址,实现不同网络之间的选择,协议ICMP IGMP IP .

  • 数据层: 在理层比特服务的基础上,建间的 数据

  • 理层: 建维护断开理连接。

          TCP/IP总共你四层,OSI的应用层,表示层,会话层对应了TCP/IP的应用层,OSI的数据链路层,物理层对应了TCP/IP的最下面的网络接口层。

 

一个 TCP 连接的生命周期

 

完整的 TCP 连接过程

 TCP 是如何确保可靠性的

  TCP 是可靠的连接,它是如何在不稳定的网络中可靠性呢?
  通过三次握手,四次挥手来保证连接和断开的可靠性、是否有状态(哪些数据发送了,哪些没发)、可控制(超时重传、流量控制、拥塞控制等)。

     

                一个 TCP 连接的生命周期

  •  首先,TCP的连接是基于三次握手,而断开则是基于四次挥手,确保连接和断开的可靠性。
  •  其次,TCP的可靠性,还体现在有状态,TCP会在内核中维护一些数据结构来记录哪些数据发送了,哪些数据被接收了,哪些没有被接受,并且保证数据包按序到达,保证数据传输不出差错。 
  •  TCP 的可靠性,还体现在可控制。它有数据包校验、ACK 应答、超时重传(发送方)、失序数据重传(接收方)、丢弃重复数据、流量控制(滑动窗口)和拥塞控制等机制。

 

TCP 报文首部有哪些字段,其作用又分别是什么?

                         TCP头部

  •  16位端口号:  源端口号,主机该报文段是来自哪里。
  •  目标端口号,要传给哪个上层协议或应用程序。
  •  32位序号:  一次 TCP 通信(从 TCP 连接建立到断开)过程中某一个传输方向上的 字节流的每个字节的编号。
  •  32位确认号: 用作对另一方发送的 tcp 报文段的响应。其值是收到的 TCP 报文段 的序号值加 1。
  •  4 位头部长度: 表示 tcp 头部有多少个 32bit 字(4 字节)。因为 4 位最大能标识 15,所以 TCP 头部最长是 60 字节。
  •  6 位标志位: URG(紧急指针是否有效),ACk(表示确认号是否有效),PSH(缓冲区尚未填满),RST(表示要求对方重新建立连接),SYN(建立连接消息标志 接),FIN(表示告知对方本端要关闭连接了)。
  •  16 位窗口大小: 是TCP 流量控制的一个手段。这里说的窗口,指的是接收通告窗口。它告诉对方本端的 TCP 接收缓冲区还能容纳多少字节的数据,这样对方就可 以控制发送数据的速度。
  •  16 位校验和: 由发送端填充,接收端对 TCP 报文段执行 CRC 算法以检验 TCP 报 文段在传输过程中是否损坏。注意,这个校验不仅包括 TCP 头部,也包括数据部 分。这也是 TCP 可靠传输的一个重要保障。
  •  16 位紧急指针: 一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据 的下一字节的序号。因此,确切地说,这个字段是紧急指针相对当前序号的偏移, 不妨称之为紧急偏移。TCP 的紧急指针是发送端向接收端发送紧急数据的方法。   

 

TCPUDP的区别

  • TCP 面向连接(如打电话需要先拨号),UDP面向无连接(即发送数据前不需要建立连接)。
  • TCP 提供可靠的服务,而UDP则无法保证。
  • TCP 面向字节流,而 UDP 面向报文。
  • TCP 数据传输慢,比如需要慢启动,UDP数据传输快,啥都不管直接就传。
  • TCP 是点对点连接的,UDP可以一对一,一对多,多对多都可以,所以组播,广播基本都用UDP协议。
  • TCP 适用于邮件、网页等,UDP 适用于语音,直播等场景。

 

posted @ 2022-12-20 16:39  songguojun  阅读(67)  评论(0编辑  收藏  举报