(一)TCP/IP基础


目录

TCPIP基础(一)

ISO/OSI参考模型

TCP/IP四层模型

基本概念(对等通信、封装、分用、端口)

TCPIP基础(二)

最大传输单元(MTU)/路径MTU

以太网帧格式

ICMP

ARP-地址解析协议

数据在网络中传输过程(ping的过程)

RARP- 反向地址解析协议

TCPIP基础(三)

IP数据报格式

网际校验和

路由

TCPIP基础(四)

TCP特点

TCP报文格式

连接建立三次握手

连接终止四次握手

TCP如何保证可靠性

TCPIP基础(五)

滑动窗口协议

UDP特点及报文格式


 

TCPIP基础(一)

ISO/OSI参考模型

ISO/OSI的参考模型共有7层 :物【物理层】 链【数据链路层】 网【网络层】 传【传输层】 会【会话层】 表【表示层】 应【应用层】

简言之,各层的作用:

  •    物理层:在物理媒体上传输原始的数据比特流。
  •    数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。
  •    网络层:将数据分成一定长度的分组,将分组穿过通信子网,从信源选择路径后传到信宿。
  •    传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。
  •    会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话。
  •    表示层: 为应用层进程提供格式化的表示和转换数据服务。
  •    应用层:提供应用程序访问OSI环境的手段。

OSI网络体系结构各层协议:

(1)应用层:TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS
(2)表示层:
                         文本:ASCII,EBCDIC
                         图形:TIFF,JPEG,GIF,PICT
                         声音:MIDI,MPEG,QUICKTIME

(3)会话层:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK会话协议)、SCP 
(4)传输层:TCP、UDP、SPX 
(5)网络层:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First开放式最短路径优先)
(6)数据链路层:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、帧中继
(7)物理层:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45


TCP/IP四层模型

1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡

2.网络层(互联网层):处理分组在网络中的活动,比如分组的选路。

3.运输层:主要为两台主机上的应用提供端到端的通信。

4.应用层:负责处理特定的应用程序细节。

TCP/IP协议族的分层 

假设在一个局域网(LAN)如以太网中有两台主机,二者运行FTP协议:


基本概念(对等通信、封装、分用、端口)

对等通信、

对等通信peer-to-peer communication,为了使数据分组从源传送到目的地,

源端OSI模型的每一层都必须与目的端的对等层进行通信,这种通信方式称为对等层通信。(网络层只能跟网络层通信)

在这一过程中,每一层的协议在对等层之间交换信息,该信息成为协议数据单元(PDU)。

每一层都利用下层提供的服务与对等层通信。(在HostA与HostB之间)

封装、

TCP/IP协议族的上层协议是通过封装来使用下层服务的。

应用程序数据在发送到物理网络之前,将沿着协议族从上往下依次封装。

每层协议都将在上层协议的基础上加上自己的头部信息(以太网还包括尾部信息),以实现改成的功能,这个过程就是封装。

经过TCP封装后的数据成为TCP报文段(TCP message segment)

经过UDP封装后的数据称为UDP数据报 

经过IP封装后的数据称为IP数据报

经过数据链路层封装的数据称为帧(frame)

分用、(解封)

当帧到达目的主机时,将沿着TCP/IP协议族从下往上依次传递。

各层协议依次处理帧中本层负责的头部数据,以获取所需的信息,并最终将处理后的数据交给目标应用程序。这个过程称为分用。

分用是靠头部信息中的类型字段实现的

端口

设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,

虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。

物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。

端口类型 

1.周知端口(Well Known Ports)

周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。

2.注册端口

端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序

3.动态端口(Dynamic Ports)

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

TCPIP基础(二)

最大传输单元(MTU)/路径MTU

最大传输单元(Maximum transmission unit),以太网MTU为1500。

以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。

如果I P层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干片 

路径MTU

两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。

两台通信主机路径中的最小MTU。它被称作路径MTU。


以太网帧格式

地址解析: IP地址转换为MAC地址(物理地址)   地址解析协议:       ARP协议

                   MAC地址转换为IP地址                         反向地址解析协议: RARP协议

以太网帧数据格式(类型): 1)数据报    2) ARP协议数据报    3) RARP协议数据报


ICMP

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机路由器之间传递控制消息。

出现原因:在IP通信中,经常有数据包到达不了对方的情况。

主要用途:差错通知和信息查询。

ICMP协议的功能主要有: 

  •      1. 确认IP包是否成功到达目标地址 
  •      2. 通知在发送过程中IP包被丢弃的原因 

ping 就是将数据封装成ICMP协议实现的

ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。

https://images0.cnblogs.com/blog/318837/201406/271146595546398.jpg

ICMP报头如下图所示

è¿éåå¾çæè¿°


ARP-地址解析协议

主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;

收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源

数据在网络中传输过程(ping的过程)

 DNS服务器:将主机名转换为IP地址


RARP- 反向地址解析协议

具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要RARP方法来获得IP地址。 因此 RARP协议目前已很少使用。

TCPIP基础(三)

IP数据报格式


网际校验和

网际校验和,英文全称(Internet Checksum)发送方对要发送的数据划分为许多16位字序列(如果数据的字节数为奇数,则在末尾补一字节0凑成偶数。)对这些序列反码求和,便得到校验和

如果数据在传输过程中没有发生任何差错,那么接收方计算校验和的结果应该为全1。如果结果不是全1(即校验和错误)

计算如下: 

IP首部(不含校验和)反码+0x1111 = 发送端校验和

IP首部(不含校验和)反码+发送端校验和反码=接收端校验和

IP首部 = IP首部(不含校验和) + 发送端校验和

路由

路由一般根据三个规则:1、搜索匹配的主机地址 2、搜索网络地址 3、搜索默认表项

TCPIP基础(四)

TCP特点

  • (1)、基于字节流

     TCP传输的单位是段,基于字节流意味着对段的边界不做任何假定,TCP没有提供边界处理,所以需要处理粘包问题。

  • (2)、面向连接

      需要建立连接

  • (3)、可靠传输

     网际校验和

  • (4)、缓冲传输

    缓存数据,找到合适时机发送,提高效率

  • (5)、全双工
  • (6)、流量控制

    滑动窗口机制


TCP报文格式

源端口号与目的端口号  源端口号和目的端口号,加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接。

序号  序号表示在这个报文段中的第一个数据字节序号。

确认号  仅当ACK标志为1时有效。确认号表示期望收到的下一个字节的序号。

头部长度  4位,TCP头部最多60个字节

保留位  6位,必须为0

6个标志位

  • URG-紧急指针有效
  • ACK-确认序号有效
  • PSH-接收方应尽快将这个报文段交给应用层
  • RST-连接重置
  • SYN-同步序号用来发起一个连接
  • FIN-表示将要终止一个连接

窗口大小  通过窗口大小来达到流量控制。

校验和  对tcp头与数据进行校验。

紧急指针  是一个正的偏移量,与序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。

选项与填充(选项为4字节整数倍,否则用0填充)  最常见的可选字段是最长报文大小MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段中指明这个选项。它指明本端所能接收的最大长度的报文段。该选项如果不设置,默认为536(20+20+536=576字节的IP数据报)


连接建立三次握手


连接终止四次握手


TCP如何保证可靠性

不可靠主要包括:差错(校验和)、丢包(超时重传)、失序、重复

  • 应用数据被分割成TCP认为最适合发送的数据块,称为段传递给IP层。
  • 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
  • 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
  • TCP将保持它首部和数据的校验和。这是一个端到端的校验和,目的是检测数据在传输过程中的任何变化。如果收到段的校验和有差错,TCP将丢弃这个报文段并且不确认(导致对方超时重传)
  • TCP承载于IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。TCP将对收到的数据进行重新排序。
  • IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。
  • TCP还能提供流量控制。TCP连接的每一方都有一定大小的缓冲空间。

TCPIP基础(五)

滑动窗口协议

  1. 滑动窗口概念不仅存在于数据链路层,也存在于传输层,两者有不同的协议,但基本原理是相近的。
  2. 其中一个重要区别是,一个是针对于帧的传送,另一个是字节数据的传送。
  3. 滑动窗口主要实现了流量的控制。
  4. 在TCP连接建立的过程中,TCP中一个字段包含了窗口的大小,还包含了一个MSS大小(防止ip层数据分片)。
  1. 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;
  2. 同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。
  3. 发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。
  4. 发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。

如上图,

序号为1、2、3的数据已经发送并且已经得到确认,所以滑动窗口开始于序号为4的数据。在这个滑动窗口中序号4-7是已经发送未被确认的数据,8-12是可以发送的数据。如果4-7得到确认,那么滑动窗口会往前移动4个数据单位。

对于接收方,接收方维护一个接收窗口,第一个序号4号表示期望收到的字节序号,如果收到一个数据不是4号但是在接收窗口之内,接收窗口将不会对这个数据确认,如果在接收窗口之外,就会丢弃这个数据。如果收到的数据是4号,接收窗口会对4号数据确认,并将窗口移动一个位置。实际上接收窗口会使用延迟确认机制。在收到连续多个数据才会进行确认,提高确认效率。 

 


UDP特点及报文格式

UDP无连接,不可靠的协议,但是一般情况下UDP更加高效。

可以看出,UDP的头部只有8个字节,数据格式比较简单,在传输过程中效率可能会更高一点。 

猜你喜欢

转载自blog.csdn.net/qq_34863439/article/details/89380322