网络参考模型

前言

TCP/IP 是互联网的基本协议,也是国际互联网络的基础。

TCP/IP 不是指一个协议,也不是 TCP 和 IP 这两个协议的合称,而是一个协议族,包括多个网络协议,比如 IP、ICMP(Internet Control Message Protocol,互联网控制报文协议)、TCP、HTTP(Hyper Text Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、POP3(Post Office Protocol version 3,邮局协议)等。

TCP/IP 定义了计算机操作系统如何连入互联网,以及数据传输的标准。

TCP/IP 是为了解决不同系统的计算机之间的传输通信而提出的一个标准,不同系统的计算机采用了同一种协议后,就能相互通信,从而能够建立网络连接,实现资源共享和网络通信。就像两个不同国家的人,用同一种语言就能相互交流了。


网络参考模型与标准协议

osi模型

osi模型

osi模型不同层级常用的协议

在这里插入图片描述


因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。

tcp/ip模型

在这里插入图片描述


应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
应用层的PDU被称为Data(数据)。


传输层

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。
传输层的PDU被称为Segment(段),tcp/ip就在此层

TCP和UDP(报文格式)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

目端口号:分别写入源端口和目的端口

序号:TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 1 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从101开始

确认号:占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送过来的报文,其序列号字段是501,而数据长度是200字节,这表明B正确的收到了A发送的到序号700为止的数据。因此,B期望收到A的下一个数据序号是701,于是B在发送给A的确认报文段中把确认号置为701;

头部长度:TCP报文的数据距离TCP报文段的起始处有多远

保留位:保留今后使用,但目前应都位0

6位标志位

  1. 紧急URG,当URG=1,表明紧急指针字段有效。告诉系统此报文段中有紧急数据(即当URG=1时,,优先处理数据)
  2. 确认ACK,仅当ACK=1时,确认号字段才有效。TCP规定,在连接建立后所有报文的传输都必须把ACK置1
  3. 推送PSH,当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时候就将PSH=1
  4. 复位RST,当RST=1,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立连接;
  5. 同步SYN,在连接建立时用来同步序号。当SYN=1,ACK=0,表明是连接请求报文,若同意连接,则响应报文中应该使SYN=1,ACK=1
  6. 终止FIN,用来释放连接。当FIN=1,表明此报文的发送方的数据已经发送完毕,并且要求释放

窗口:通知接收方,发送本报文你需要有多大的空间来接受(即告知有多大的缓存)

检验和:校验首部和数据这两部分

紧急指针:指出本报文段中的紧急数据的字节数


网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
网络层的PDU被称为Packet(包)

IP数据包的封装与转发

网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。

在这里插入图片描述

  1. IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装 。
  2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
  3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口等)。此时的PDU被称作Segment(段)。
  4. TCP模块会将封装好的Segment传递给网络层的IPv4(IPv6)模块。
  5. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时的PDU被称为Packet(包)。
  6. 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将Packet交由数据链路层的Ethernet模块(例如以太网卡)处理。
  7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信息和FCS帧尾,此时的PDU被称为Frame(帧)。
  8. 在Ethernet模块封装完毕之后,会将数据传递到物理层。
  9. 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波(无线)信号等。
  10. 转换完成的信号在网络中开始传递。

数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。

  • 数据链路层向网络层提供“段内通信”。
  • 负责组帧、物理编址、差错控制等功能。
  • 以太网(Ethernet)是最常见的数据链路层协议。
地址解析协议(ARP)

ARP (Address Resolution Protocol)地址解析协议:根据已知的IP地址解析获得其对应的MAC地址。

ARP是IPv4中必不可少的一种协议,它的主要功能是:

  • 将IP地址解析为MAC地址;
  • 维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
  • 实现网段内重复IP地址的检测。

工作过程

  1. 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。
  2. 主机1通过发送ARP Request报文来获取主机2的MAC地址。由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。
  3. ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作
  4. 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。
    主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。
  5. 主机2通过发送ARP Reply报文来响应主机1的请求。此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。交换机收到该单播数据帧后,会对该帧执行转发操作。
  6. 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。如果匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值