【计网OSI七层模型分层,TCP/IP四层模型】 --- 史上最详细的解读(2w字)

发布于:2023-01-24 ⋅ 阅读:(22) ⋅ 点赞:(0) ⋅ 评论:(0)

在这里插入图片描述
在这里插入图片描述


个人名片:

🐼作者简介:一名大一在校生
🐻‍❄️个人主页:小新爱学习.
🐼个人WeChat:hmmwx53
🕊️系列专栏:零基础学java ----- 重识c语言
🐓每日一句:少年不惧岁月长,彼方自有荣光在!



一、计算机网络体系结构分层

在这里插入图片描述

网络分层概述:

网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。


在面试时,面试官会问及五层(TCP/IP结构体系),七层(OSI的结构体系)或四层(五层协议的结构体系)网络划分结构,具体指:

在这里插入图片描述

网络层次划分(OSI模型)与(TCP/IP模型):✨

网络层次可划分为五层因特网协议栈和七层因特网协议栈。

五层
因特网协议栈共有五层:应用层、传输层、网络层、链路层和物理层。不同于OSI七层模型这也是实际使用中使用的分层方式。

(1)应用层

支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、pop3等。

(2)传输层

负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP。

(3)网络层

负责将数据报独立地从信源发送到信宿,主要解决路由选择、拥塞控制和网络互联等问题。

(4)数据链路层

负责将IP数据报封装成合适在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,取出IP数据报交给网络层。

(5)物理层

负责将比特流在结点间传输,即负责物理传输。该层的协议既与链路有关也与传输介质有关。

七层
ISO提出的OSI(Open System Interconnection)模型将网络分为七层,即物理层( Physical )、数据链路层(Data Link)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentation)和应用层(Application)。

OSI模型共分七层:从上至下依次是 应用层指网络操作系统和具体的应用程序,对应WWW服务器、FTP服务器等应用软件 表示层数据语法的转换、数据的传送等 会话层 建立起两端之间的会话关系,并负责数据的传送 传输层 负责错误的检查与修复,以确保传送的质量,是TCP工作的地方。(报文) 网络层 提供了编址方案,IP协议工作的地方(数据包) 数据链路层将由物理层传来的未经处理的位数据包装成数据帧 物理层 对应网线、网卡、接口等物理设备(位)。

各层简单概述:✨

(1)物理层

物理层(Physical layer)是参考模型的最低层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。主要功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,以便数据流的透明传输。

(2)数据链路层

数据链路层(Data link layer)是参考模型的第2层。 主要功能是:在物理层提供的服务基础上,在通信的实体间建立数据链路连接,传输以"帧"为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。

(3)网络层

网络层(Network layer)是参考模型的第3层。主要功能是:为数据在结点之间传输创建逻辑链路,通过路由选择算法为分组(packet, 也称数据包)通过通信子网选择最适当的路径,以及实现拥塞控制、网络互联等功能。

(4)传输层

传输层(Transport layer)是参考模型的第4层。主要功能是向用户提供可靠的端到端(End-to-End)服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。

(5)会话层

会话层(Session layer)是参考模型的第5层。主要功能是:负责维护两个结点之间的传输链接,以便确保点到点传输不中断,以及管理数据交换等功能。

(6)表示层

表示层(Presentation layer)是参考模型的第6层。主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。

(7)应用层

应用层(Application layer)是参考模型的最高层。主要功能是:为应用软件提供了很多服务,例如文件服务器、数据库服务、电子邮件与其他网络软件服务。

在这里插入图片描述


二、OSI模型详讲:🎀🎀🎀

2.1 概述:

OSI模型:OSI模型定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI模型各层的通信协议,
在这里插入图片描述

第一层:物理层🎋

概述:

物理层 (或称物理层,Physical Layer)是 计算机网络 OSI模型 中最低的一层。 物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。 简单的说,物理层确保原始的 数据 可在各种物理媒体上传输。 局域网 与 广域网 皆属第1、2层。 物理层是 OSI 的第一层,它虽然处于最底层,却是整个开放系统的基础。 物理层为设备之间的 数据通信 提供传输媒体及互连设备,为 数据传输 提供可靠的环境。

常见传输介质:双绞线,光纤(单模传输距离远,速度快,),电缆、中继器、空明线、平衡电缆等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。

它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特

                   物理层的PDU被称为比特流

物理层协议

物理层上的协议有时也称为接口。物理层协议规定了与建立、维持与断开物理信道有关的特性。这些特性包括机械的、电气的、功能性的和规程性的四个方面。这些特性确保物理层能够通过物理信道在相邻网络节点之间正确地收、发比特信息,即确保比特流能送上物理信道,并且能在另一端取下它。物理层仅单纯关心比特流信息的传输,而不涉及比特流中各比特之间的关系(包括信息格式及其含义),对传输差错也不作任何控制。
(作了解,感兴趣的朋友们可以自行查看)
USB protocol
Bluetooth protocol
CAN bus
Etherloop
IEEE 802.15.4
IEEE 1394 interface
SMB
ISDN
……

进制转化:

  • 1.十进制: 都是以0-9这九个数字组成,不能以0开头。

  • 2.二进制: 由0和1两个数字组成。

  • 3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

  • 4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

十进制转二进制
(1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。

(2)具体做法:

将某个十进制数除2得到的整数部分保留,作为第二次除2时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。

二进制转10进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。

如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。

因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。

如要想二进制00101010转为十进制,因为以0开头,所以这是正整数,计算如下所示:

(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42


第二层:数据链路层🎋

概述:

数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
总结这一层的主要功能:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

在这里插入图片描述
上图为两台主机通过互联网进行通信时数据链路层所处的地位。

数据链路层从网络层接收数据包,数据包 包含发送方和接收方的IP地址。有两种寻址方式:逻辑寻址和物理寻址。

物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。
数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,从数据发送点到数据接收点所经过的传输途径。当采用复用技术时,一条物理链路上可以有多条数据链路。

数据链路控制协议也称链路通信规程,也就是OSI参考模型中的数据链路层协议。链路控制协议可分为异步协议和同步协议两大类。

数据链路层的主要协议有:

(1)点对点协议(Point-to-Point
Protocol);
(2)以太网(Ethernet);
(3)高级数据链路协议(High-Level Data Link Protocol); (4)
帧中继(Frame
Relay); (5)
异步传输模式(Asynchronous
Transfer Mode);

以太网与MAC地址

以太网是一种广播式数据链路协议,支持多点接入
MAC地址在网络中唯一标识的一个网卡,每一个网卡都需要唯一的一个物理地址

地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。

在这里插入图片描述
数据封装
以太网头部:目标MAC地址,Source 头部MAC地址, Type MAC 地址

封装成帧与透明传输

封装成帧

在这里插入图片描述

  • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束
  • 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
  • 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
  • 组帧的四种方法:①字符计数法,②字符(节)填充法,③零比特填充法,④违规编码法。
    在这里插入图片描述

透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

帧同步(组帧的四种方法)

帧同步
为了使传输中发生差错后只将有错的有限数据进行重发,数据链路层将比特流组合成以太帧为单位传送。每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。帧的组织结构必须设计成使接收方能够明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止,这就是帧同步要解决的问题。

  • (1)字节计数法这是一种以一个特殊字符表示一帧的起始并以一个专门字段来标明帧内字节数的帧同步方法。接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始并从专门字段中获知该帧中随后跟随的数据字节数,从而可确定出帧的终止位置。面向字节计数的同步规程的典型代表是DEC公司的数字数据通信报文协议DDCMP(DigitalData Communications Message Protocol)。
    控制字符SOH标志数据帧的起始。实际传输中,SOH前还要以两个或更多个同步字符来确定一帧的起始,有时也允许本帧的头紧接着上帧的尾,此时两帧间就不必再加同步字符。count字段共有14位,用以指示帧中数据段中数据的字节数,14位二进制数的最大值为16383,所以数据最大长度为131064。DDCMP协议就是靠这个字节计数来确定帧的终止位置的。DDCMP帧格式中的ACK、SEG、ADDR及FLAG中的第2位CRC1、CRC2分别对标题部分和数据部分进行双重校验,强调标题部分单独校验的原因是,一旦标题部分中的CONUT字段出错,即失却了帧边界划分的依据。由于采用字符计数方法来确定帧的终止边界不会引起数据及其它信息的混淆,因而不必采用任何措施便可实现数据的透明性(即任何数据均可不受限制地传输)。
  • 2)使用字符填充的首尾定界符法:该法用一些特定的字符来定界一帧的起始与终止,为了不使数据信息位中出现的与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据字符前填充一个转义控制字符(DLE)以示区别,从而达到数据的透明性。但这种方法使用起来比较麻烦,而且所用的特定字符过份依赖于所采用的字符编码集,兼容性比较差。
  • 3)使用比特填充的首尾标志法:该法以一组特定的比特模式来标志一帧的起始与终止。
  • (4)违法编码法:该法在物理层采用特定的比特编码方法时采用。例如,一种被称作曼彻斯特编码的方法,是将数据比特“1”编码成“高-低”电平对,而将数据比特“0”编码成“低-高”电平对。而“高-高”电平对和“低-低”电平对在数据比特中是违法的。可以借用这些违法编码序列来定界帧的起始与终止。局域网IEEE 802标准中就采用了这种方法。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用于采用冗余编码的特殊编码环境。由于字节计数法中COUNT字段的脆弱性以及字符填充法实现上的复杂性和不兼容性,较普遍使用的帧同步法是比特填充和违法编码法。

第三层:网络层🎋

网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层,它在下两层的基础上向资源子网提供服务。其主要功能是:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点),从而向传输层提供最基本的端到端的数据传输服务.具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。数据链路层和网络层的区别为:数据链路层的目的是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。

网络层协议
网络层经常被称为IP层。但网络层协议不只是IP协议。

逻辑地址:就是网络层地址,如TCP/IP协议栈的IP地址,OSI中的NSAP地址。当一个从应用层发起的数据包,一层层封装到网络层时,会接着封装上一个网络层的头部,在网络层的头部中,就包括逻辑地址等信息。

IP协议

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,同时IP协议也是最重要的互联网标准协议之一。

与IP协议配套使用的还有三个协议:

  • (1)地址解析协议 ARP( address resolution protocol )

  • (2)网际控制报文协议 ICMP( internet control message protocol )

  • (3)网际组管理协议 IGMP( internet group management protocol )

数据封装

IPv4报文
在这里插入图片描述

IP数据报由首部和数据部分组成,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。固定部分后面的是可选字段,其长度可变。

IP 数据报首部各字段的意义:

(1)版本( version ),4 位,IP 协议的版本。0100 V4版本,0110 V6版本。

(2)首部长度( header length ),4 位,含固定部分和可变部分首部长度。

(3)区分服务( differentiated services field ),8 位,优先级和 ToS

(4)总长度( total length ),16 位,首部和数据之和的长度,单位字节。

(5)标识( identification ),16 位,确保拥有相同标识字段值的分片能够重新组装成为原来的数据报。

(6)标志 ( flag ),3 位,目前只有后两位有实际意义。最低位为
MF=1,即表示后面还有分片,MF=0,即表示这是最后一个分片。中间的一位为 DF,意为不能分片。只当 DF=0 时才可允许分片。

(7)片偏移( falgment offset ),13 位,较长的分组在分片后,某片在原分组中的相对位置。

(8)生存时间( TTL,Time to live ),8 位,数据报在因特网中至多可经过几个路由器,最大跳数255。TTL=1
表示该数据报只能在本局域网内传输。每经过一个路由器TTL-1,当该字段为0时,数据包将被丢弃

(9)协议( Protocol ),8 位,表示数据报所携带的数据是使用何种协议,以便上交给上层谁来负责处理。如 TCP UDP OSPF
IPv6 EGP IGP IGMP ICMP ESP 等。

(10)首部检验和( header checksum ),16 位,只检验数据报的首部,不包括数据部分。

(11)源地址( source ip address ),32 位。

(12)目的地址( destination ip address ),32 位。

(13)可变部分,1 个字节到 40 个字节不等。包含可选字段和填充字段。极少用。


协议号()

什么是IP地址

  • IP地址在网络中用于表示一个节点(或者网络设备的接口)
  • IP地址用于IP报文早网络中的寻址

IP地址的表示

  • 一个IPv4地址有32bit
  • IPv4地址通常采用“点分十进制”表示

IP地址构造

  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 网络掩码:区分一个IP地址中的网络部分及主机部分

IP地址分类

IP地址是Internet地址的一种表示形式

IPv4地址按照网络号和主机号的长度被分为五大类。A、B、C类用于为Internet(单播地址)中的设备接口分配地址,以及其他特殊情况下使用。类由地址中的头几位来定义:
0为A类,10为B类,110为C类,1110为D类,1111为E类。D类地址供组播使用,E类地址保留。分类如下图所示:

在这里插入图片描述
A:0-127
B:128-191
C:192-223
D: 224-239
E:240-255
每个网段中都用网络地址和广播地址

ABC默认网络掩码
A类:8bit ,0.0.0.0~127.255.255.255/8
B类:16bit,128.0.0.0~191.255.255.255/16
C类:24bit,192.0.0.0~223.255.255.255/24

私有IP地址的范围有:
10.0.0.0-10.255.255.255 

172.16.0.0—172.31.255.255 

192.168.0.0-192.168.255.255 

上述的IP地址都是可以使用在局域网中的。

IP地址类型

网络地址:用来标识一个网络
广播地址:用于向该网络中所有的主机发送数据的特殊地址192.168.10.1
可用地址:可分配给网络中的节点或者网络设备接口的地址
192.168.10.1/24

Ip地址数:2^16=65536
可用:2^16-2=65534

NAT技术

特殊IP地址

一、0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

二、255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。

三、127.0.0.1

本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

四、224.0.0.1

组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。

五、169.254.X.X

如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

六、10.X.X.X、172.16.X.X~172.31.X.X、192.168.X.X

私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。

划分子网和构造超网

1.子网划分(向主机借位)

子网划分的若干个好处:

  • ①减少网络流量
  • ②提高网络性能
  • ③简化管理
  • ④可以更为灵活的形成大覆盖范围的网络
2.子网掩码

子网掩码(subnet mask)又称“网络掩码”、“地址掩码”,它是一种用来指明一个IP地址的哪些位标识的是主机所在的网络地址与主机地址的位掩码。子网掩码和IP地址的表示方法是相同的,在IPv4中是点分十进制四组表示法或表示为一个八位十六进制数。子网掩码的好处是不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND)即得出网络地址来。

通过划分子网,我们可以按照我们的需要将网络分割成小网络。这样也有助于降低流量和隐藏网络的复杂性。划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。

计算:(以10台主机为例) 例:已知子网192.168.15.19/28,求属于该子网的主机范围

思路:首先,还是先将IP地址转换为二进制:11000000.10101000.00001111.00010011
,然后写出他的子网掩码(网络位为1,主机位为0):
11111111.11111111.11111111.11110000 然后将两组数据进行按位与操作(相同为1,不同为0),得:
11000000.10101000.00001111.00010000,转换为十进制即为192.168.15.16。 主机位为32-28=4位,故总主机数为2^4=16,可分配主机数为16-2=14。
可分配主机范围即192.168.15.17-172.168.15.30 总主机范围为192.168.15.16-172.168.15.31

PS:当主机数均为0时为该网段的单播地址,主机数全为1时为该网段的广播地址。故主机数全为0或1时不能作为可分配的主机地址(掐头去尾),故减2。

ICMP协议

功能Ping 通过发送回送请求报文和回送回答报文来检测源主机到目的主机的链路是否有问题,目的地是否可达,以及通信的延迟情况。
Ping是网络设备,window…
功能Traceroute追踪路由器通过发送探测报文来获取链路地址信息。第一个探测报文TTL为1,到达第一个路由器时,TTL减1为0所以丢掉这个探测包,同时向源主机发回ICMP时间超过报文,这时源主机就获得了第一个路由器的IP地址;接着源主机发送第二个探测报文,TTL增1为2,到达第一个路由器TTL减1为1并转发探测包到第二个路由器,这时TTL减1为0,丢掉这个探测包并向源主机发回ICMP时间超过报文,源主机就获得了第二个路由器的IP地址;以此类推,直到探测报文到达traceroute的目的地,这时源主机就获得了到目的地的每一跳路由的IP地址。

网络IP地址规划

参考规划原则:唯一性,连续性、扩展性、结构化、…

第四层:传输层🎋

OSI模式下3层的任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。该层提供建立、维护和拆除传输连接的功能,起到承上启下的作用。该层的主要功能是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文

传输层是OSI参考模型中的第四层,传输层协议为网络端点主机上的进程之间提供了可靠、有效的报文传送服务。

传输层协议接收来自应用层协议的数据,封装上对应的传输层头部,帮助其建立
“端到端”的链接

传输层提供逻辑连接的建立、传输层寻址、数据传输、传输连接释放、流量控制、拥塞控制、多路复用和解复用、崩溃恢复等服务。

传输层协议:

TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义的。
提供全双工服务,即数据可在同一时间双向传输;
UDF:一种简单的无连接的传输层协议,总之快,可能丢包

TCP报文段:

  • (1)TCP将若干个字节构成一个分组,叫报文段(Segment)

  • (2)TCP报文段封装在IP数据报中
    在这里插入图片描述

  • (1)端口号:用来标识同一台计算机的不同的应用进程。

  • (2)源端口:源端口和IP地址的作用是标识报文的返回地址。

  • (3)目的端口:端口指明接收方计算机上的应用程序接口。

  • (4)序号(sequence number):Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

  • (5)确认号(acknowledgement number):Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

数据封装,传输,解封装✨

在这里插入图片描述
封装
首先在应用层,浏览器会将请求数据封装为HTTP协议数据包,在原本数据包中加入HTTP头。
传输层:tcp协议将前一个封装的数据包再次封装为tcp数据包。
网络层:封装ip协议。
数据链路层:封装了数据帧。
解包分用
数据链路层:操作系统在网卡接收到数据之后,再解析接收到的数据包,其中就会处理数据帧。
网络层:系统处理ip头部。
传输层:系统处理tcp报头,报头中包括ip和port,知道了端口号,找到对应的应用程序,,系统将数据包交给应用程序来处理数据。
应用层:应用程序根据协议处理数据。

TCP协议原理🎋

TCP的连接与断开

1.TCP建立连接

三次握手原理:

在这里插入图片描述
客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。

举个通俗一点的例子:把客户端比作男孩,服务器比作女孩。用来说明“三次握手”的过程:
在这里插入图片描述
(1)男孩喜欢女孩,于是写了一封信告诉女孩:我爱你,请和我交往吧!写完信之后,男孩焦急地等待,因为不知道信能否顺利传达给女孩。
(2)女孩收到男孩的情书后,心花怒放,原来我们是两情相悦呀!于是给男孩写了一封回信:我收到你的情书了,也明白了你的心意,其实,我也喜欢你!我愿意和你交往!写完信之后,女孩也焦急地等待,因为不知道回信能否能顺利传达给男孩。
(3)男孩收到回信之后很开心,因为发出的情书女孩收到了,并且从回信中知道了女孩喜欢自己,并且愿意和自己交往。然后男孩又写了一封信告诉女孩:你的心意和信我都收到了,谢谢你,还有我爱你!

女孩收到男孩的回信之后,也很开心,因为发出的情书男孩收到了。由此男孩女孩双方都知道了彼此的心意,之后就快乐地交流起来了~~

这就是通俗版的“三次握手”,期间一共往来了三封信也就是“三次握手”,以此确认两个方向上的数据传输通道是否正常。

2.TCP断开连接

四次挥手原理:

客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK
在这里插入图片描述

举个通俗一点的例子:把客户端比作男孩,服务器比作女孩。用他们的分手来说明“四次挥手”过程。
在这里插入图片描述

“第一次挥手”:日久见人心,男孩发现女孩变成了自己讨厌的样子,忍无可忍,于是决定分手,随即写了一封信告诉女孩。

“第二次挥手”:女孩收到信之后,知道了男孩要和自己分手,怒火中烧,心中暗骂:你算什么东西,当初你可不是这个样子的!于是立马给男孩写了一封回信:分手就分手,给我点时间,我要把你的东西整理好,全部还给你!男孩收到女孩的第一封信之后,明白了女孩知道自己要和她分手。随后等待女孩把自己的东西收拾好。

“第三次挥手”:过了几天,女孩把男孩送的东西都整理好了,于是再次写信给男孩:你的东西我整理好了,快把它们拿走,从此你我恩断义绝!

“第四次挥手”:男孩收到女孩第二封信之后,知道了女孩收拾好东西了,可以正式分手了,于是再次写信告诉女孩:我知道了,这就去拿回来!

三次握手握三次,为什么断开要断四次?

TCP建立连接时之所以只需要"三次握手",是因为在第二次"握手"过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。

即SYN建立连接报文与ACK确认接收报文是在同一次"握手"当中传输的,所以"三次握手"不多也不少,正好让双方明确彼此信息互通。

数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次。

第五层:会话层🎋

会话层是OSI模型的第5层,是用户应用程序和网络之间的接口,该层的主要功能是:组织和协调两个会话进程之间的通信 ,并对数据交换进行管理。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。域名就是一种网络上使用的远程地址。会话层的具体功能如下:

会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。
会话流量控制:提供会话流量控制和交叉会话功能。
寻址:使用远程地址建立会话连接。
出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。

三大功能

OSI会话层,主要功能是用来管理网络设备的会话连接,细分为三大功能:

  1.  建立会话:A、B两台网络设备之间要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节;
  2.  保持会话:通信会话建立后,通信双方开始传递数据,当数据传递完成后,OSI会话层不一定会立刻将两者这条通信会话断开,它会根据应用程序和应用层的设置对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;
  3.  断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话。或者A、B重启、关机、手动执行断开连接的操作时,OSI会话层也会将A、B之间的会话断开。

在这里插入图片描述

第六层:表示层🎋

表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。该层的主要功能是:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:
在这里插入图片描述

数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:可以提高网络的安全性。

具体:
表示层的功能 (Functionalities of the Presentation layer )
Specific functionalities of the presentation layer are as follows:

表示层的特定功能如下:
翻译:
The processes or running programs in two machines are usually exchanging the information in the form of numbers, character strings and so on before being transmitted. The information should be changed to bitstreams because different computers use different encoding schemes.

两台机器中的进程或正在运行的程序通常在传输之前以数字,字符串等形式交换信息。 该信息应更改为比特流,因为不同的计算机使用不同的编码方案。

The Presentation layer is responsible for compatibility between these encoding methods.

表示层负责这些编码方法之间的兼容性。

The Presentation layer at the sender’s side changes the information from its sender dependent format.

发送方一侧的Presentation层更改了其发送方相关格式的信息。

The Presentation layer at the receiving machine changes the common format into its receivers dependent format.

接收机器上的Presentation层将通用格式更改为其依赖于接收者的格式。

Example: Convert ASCII code to EBCDIC code.

示例:将ASCII码转换为EBCDIC码。

  1. Encryption

2)加密

The system must be able to assure privacy regarding the message or information as it also carries sensitive information.

该系统必须能够确保有关消息或信息的隐私,因为它还携带敏感信息。

Encryption means that the sender transforms the original information or message to another form, this data after encryption is known as the ciphertext and this ciphertext sends the resulting message out over the network.

加密意味着发送者将原始信息或消息转换为另一种形式,加密后的该数据称为密文,并且该密文通过网络将结果消息发送出去。

Decryption concerned with the transform of the message back to its original form. This decrypted data is known as plain text.

解密涉及将消息转换回其原始形式。 这种解密的数据称为纯文本。

3)压缩

Data Compression means reduces the number of bits to be transmitted by this reduce the bandwidth of the data.

数据压缩装置通过减少数据带宽减少了要发送的比特数。

Data Compression becomes particularly important in the transmission of multimedia such as audio, video, text, etc.

在诸如音频,视频,文本等多媒体传输中,数据压缩变得尤为重要。

第七层:应用层🎋

应用层是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,该层的主要功能是:直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外该层还负责协调各个应用程序间的工作。应用层的具体功能如下:
应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。

主要是提供网络任意端上应用程序之间的接口。
运输访问和管理
电子邮件
虚拟终端

应用层软件结构

应用层中的应用软件分两种:客户/服务器和P2P体系结构
客户/服务器(client/server)
客户端,服务器模型,客户端请求服务器,服务器响应客户端这样的一种方式进行“交流”
P2P
也称为对等体系结构。P2P相当于每个人的电脑都可以当服务器,也可以当客户端,不单单限制于只能客户端访问服务器,你自己的计算机可以去访问别人的计算机上的内容,别的同样可以访问你计算机上的内容,这样达到一种共享的状态。

应用层协议

DNS协议

Domain Name System 域名系统。也可以叫做域名解析协议。
DNS协议工作原理

通过域名访问网页
计算机会先将域名发送到一个解析域名的服务器上,在其服务器上有很多服务器,能解析各种各样的域名,比如有专门解析.org的,解析.com的,解析.net的。等等,最主要的有一个根域名服务器,域名解析(在服务器上查找IP地址)的过程有两种算法,迭代查询,递归查询。一般是两种查询的结合。
本机计算机找到其中一台解析域名的服务器(可能是.com),如果没有找到对应的IP地址,那么就会去找根域名服务器,根域名服务器知道所有的子服务器,所以他肯定知道该域名所对应的IP地址在那个子服务器中,所以告诉第一次查询的服务器要他去另一台服务器上找,找到了,就将其返回给计算机,以后在有另一台计算机也通过这个域名访问,那么第一台服务器会有原来的域名IP地址的缓存,就不用去找根服务器了。
找到了,就能找到我们要访问的服务器了。

http协议

URL:统一资源定位符,通过下面格式,可以看出,就是用来定位我们所需要资源在服务器上的位置。

格式:<协议>://<主机>:<端口>/<路径>
协议:http
主机:域名/IP地址
端口: 在传输层需要使用的,访问目的主机的哪个端口号。
路径:精准的定位我们所需要的资源位置
平常会省略协议和端口号,因为这些度是默认的,在访问主页时,路径也会省略。比如www.baidu.com这个默认进入百度的主页,完整写法 http://www.baidu.com:80/index.htm
超文本传送协议HTTP
作用:怎样向服务器请求文档、服务器怎么把文档传送给浏览器,通俗点讲,就是我们想服务器访问网页资源时,服务器如何把网页上的东西传给我们。

客户端向服务器:请求报文
服务器向客户端:响应报文

应用层协议的功能:🎐

  • 为通信双方定义过程;
  • 定义消息类型;
  • 定义消息的语法;
  • 定义任何信息性字段的含义;
  • 定义发送消息的方式和预期的响应;
  • 定义与下一层之间的交互。