网络协议层

article/2025/8/19 13:39:03

 1.osi七层模型以及每层的都是干什么的
         七层模型分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。


         物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
         数据链路层:负责建立和管理节点间的链路。主要功能是:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
         网络层主要功能是:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点),从而向传输层提供最基本的端到端的数据传输服务。
         传输层主要功能是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
         会话层主要功能是:组织和协调两个会话进程之间的通信  ,并对数据交换进行管理。
         表示层主要功能是:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。
         应用层主要功能是:直接向用户提供服务,完成用户希望在网络上完成的各种工作。

 

 

 

2.为什么要分层,分层有哪些好处
分层思想:将复杂的流程分解为功能相对单一的过程。
分层的好处:复杂的问题简单化、各层间相互独立、促进标准化工作。


 

3. 数据传输过程 :

(1)应用程序准备数据;
(2)传输层:将数据分块,称为数据段,并将源端口号和目标端口号封装在TCP/UDP头;
(3)网络层:在每一个数据段上添加目标IP地址和源IP地址(封装在IP包头),称为IP数据报;
(4)数据链路层:将IP报文增加帧头帧尾,封装成数据帧。利用自己的子网掩码判断自己处于哪一网段,并判断目标IP地址处于哪一网段,如果处于同一网段,则使用ARP广播协议解析目标IP地址的MAC地址,否则,将数据传给Switch(交换机,工作于数据链路层,属于二层设备,查看目标MAC地址,然后进行存储转发),让交换机基于PC4的网关地址将数据传给符合的Route(路由器,工作于网络层,属于三层设备,去除MAC帧中的MAC地址,并查看目标IP地址,根据"路由表"选择出口);
(5)物理层:将数据帧拆分为比特流。           

4. tcp三次握手以及四次挥手的过程
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
刚开始客户端处于 Closed 的状态,服务端处于 Listen 状态。
(进行三次握手)


第一次握手:
客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:
服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:
客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。
确认报文段ACK=1,确认号ack=y+1,序号seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。
建立一个连接需要三次握手,而终止一个连接要经过四次挥手。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。
TCP 连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务端均可主动发起挥手动作。
刚开始双方都处于ESTABLISHED(已被承认的) 状态,假如是客户端先发起关闭请求。

 

(四次挥手的过程如下)
第一次挥手:
客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状态。
即发出连接释放报文段(FIN=1,序号seq=u),并停止再发送数据,主动关闭TCP连接,进入FIN_WAIT1(终止等待1)状态,等待服务端的确认。
第二次挥手:
服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。
即服务端收到连接释放报文段后即发出确认报文段(ACK=1,确认号ack=u+1,序号seq=v),服务端进入CLOSE_WAIT(关闭等待)状态,此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待2)状态,等待服务端发出的连接释放报文段。
第三次挥手:
如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态。
即服务端没有要向客户端发出的数据,服务端发出连接释放报文段(FIN=1,ACK=1,序号seq=w,确认号ack=u+1),服务端进入LAST_ACK(最后确认)状态,等待客户端的确认。
第四次挥手:
客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状态。需要过一阵子以确保服务端收到自己的 ACK 报文之后才会进入 CLOSED 状态,服务端收到 ACK 报文之后,就处于关闭连接了,处于 CLOSED 状态。
即客户端收到服务端的连接释放报文段后,对此发出确认报文段(ACK=1,seq=u+1,ack=w+1),客户端进入TIME_WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,客户端才进入CLOSED状态。

 

 

 


http://chatgpt.dhexx.cn/article/sTeVXHyf.shtml

相关文章

网络协议:网络层传输层

目录 网络层 网络层首部 网络层首部--总长度 网络层首部--标识、标志 网络层首部--片偏移 网络层首部--生存时间 ping的几个用法 传输层 UDP UDP--数据格式 UDP--检验和(Checksum) 端口 网络层 网络层数据包(IP数据包,Pac…

第四讲:网络层协议

文章目录 一、网络层功能二、IP数据包的格式1、IP数据包格式2、各字段说明 三、ICMP协议1、ICMP封装与格式2、ping命令2.1 ping命令的各种用法 四、ARP协议1、什么是ARP协议?2、ARP协议是如何工作的?3、ARP工作原理4、windows当中如何查看ARP缓存表5、AR…

网络层协议的介绍

目录 ICMP协议(Internet控制报文协议) 网络层的功能 *定义了基于IP协议的逻辑地址 *连接不同的媒介类型 *选择数据通过网络的最佳路径 总体结构 IP数据包格式ICMP协议介绍ARP协议介绍ARP攻击原理 1,IP数据包格式 协议字段 版本&…

网络层协议

网络层有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。 ARP协议为IP协议提供服务,IP协议为ICMP协议提供服务,ICMP协议为IGMP协 议提供服务。 ARP协议:将IP地址通过广播,目标Mac地址是FF-FF-FF…解析目标IP地址的Mac 地址。(局域网中)通过arp -a可以查看Mac地址。…

详解网络层协议(ICMP,ARP)

目录 1、网络层功能: 2、IP数据包格式: 3、ICMP协议: 4、请求超时和目标主机不可达的区别: 5、ICMP协议的封装: 6、ping 命令的使用: 7、ARP协议: 8、ARP工作原理: 9、ARP欺骗&a…

网络层的协议介绍

文章目录 IP数据包格式ICMP协议(Internet控制报文协议)ARP协议概述ARP攻击原理本章总结 IP数据包格式 协议字段 IP数据包格式(分为20字节的固定部分,表示每个IP数据包必须包含的部分,和40字节的可变长部分&#xff…

4、网络层协议

目录 IP协议 IPV4 IPv6 ARP协议 IGMP协议 ICMP协议 路由协议 OSPF协议 RIP协议 BGP协议(边界网关) IP协议 网络层的IP协议是构成Internet的基础。网络上每一个节点都必须有一个独立的Internet地址(IP地址)。每个计算机…

【网络】网络层协议——IP

目录 网络层IP协议IP基础知识IP地址IP报头格式网段划分CIDR 特殊的IP地址IP地址的数量限制私有IP地址和公有IP地址 路由IP总结 网络层 在复杂的网络环境中确定一个合法的路径。 IP协议 IP协议作为整个TCP/IP中至关重要的协议,主要负责将数据包发送给最终的目标计…

网络层协议 IP

目录 IP协议 基本概念 协议头格式(重要) 分片了如何组装: 那么判断是否片偏移就是: 分片对UDP和TCP有影响吗? 总结 网段划分(重要) 下面有两个例子: 特殊的IP地址 …

网络层协议协议介绍

网络层协议协议介绍 文章目录 网络层协议协议介绍一、网络层的功能二、IP数据包的格式三、ICMP协议(internet控制报文协议)3.1icmp协议3.2ICMP协议的封装3.3 Ping命令的用法 四、ARP协议介绍4.1什么是ARP协议4.2ARP协议的作用4.3ARP工作原理 一、网络层的功能 1、定义了基于IP…

IP 协议(网络层协议)

IP协议 IP 协议作用地址管理动态分配 IP 地址NAT 机制IPv6IP 地址的组成 路由选择 IP 协议作用 主要有两点 : 地址管理 为每个上网的设备分配一个唯一地址. 路由选择 两台主机间的信息交互, 具体走哪条线路. 地址管理 先来看看 IP协议 报文格式 : IP 协议最主要就是 32 位的…

网络层协议总结

网络层,说简单点,就是在复杂的网络环境中确定一个合适的路径。 有四个协议:ARP协议,IP协议,ICMP协议,IGMP协议。 IP协议 1、概念(协议内容即设定ip地址,实现数据传输) I…

Java--三目运算符

文章目录 前言内容总结end 前言 在判断这方面我们经常用到的有if / if ... else / if ... else if / switch case之类的,有一种非常简单的,能将if原本需要几行代码才能总结出来的内容,只需要一行代码就能书写出来的,这就是今天我要介绍的三目运算符. 内容 先给出一个输入的例…

python和java中的三目运算符

前言: 作者:神的孩子在歌唱 大家好,我叫智 Python 三元运算符用于根据条件选择两个值之一。它是 if-else 语句的一个缩影,它将两个值之一分配给一个变量。Python 三元运算符的语法是: [statement_1] if [expression] …

java使用三目运算符来判断成绩

**题目:**利用条件运算符的嵌套来完成此题:学习成绩>90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 程序分析:(a>b)?a:b这是条件运算符的基本例子。 三目运算符: (判断式…

java运算符(算数运算符、三目运算符、位运算符)

java运算符 1 运算符:算术运算符%:求余运算符。/:除法运算符。自增运算符三目运算符 (条件表达式)?表达式1:表达式2;练习题位运算符 2 程序流程控制2.1 if-else结构2.2 switch-case结构2.3 循环结构之for循环2.4 循环…

js三目运算符

三木元算符样式: 条件判断 ? A(是) : B(否) 并返回值 判断条件是否成立,若成立返回A,若不成立返回B 三目运算符极大的简化了if语句,同时又可以直接对判断的值进行返回,基本等同于在if else …

Java三目运算符易错题

先看一道题,下述代码的输出是什么? public static void main(String[] args) {char alpha A;int foo 65;boolean trueExp false;System.out.println(trueExp ? alpha : 0);System.out.println(trueExp ? alpha : foo);}答案如下: A 65 …

Java中三目运算符不为人知的坑

一、思考题 以下代码可能有什么错误&#xff1f;为什么&#xff1f; import java.util.HashMap; import java.util.Map;public class OneMoreStudy {public static void main(String[] args) {Map<String, Integer> map new HashMap<>();map.put("heihaozi…

JavaScript:三目运算符

HELLO 大家好&#xff01; 三目运算符是一个非常简单且使用的运算符。 是由两个运算符连接的三个操作数据或者表达式 条件表达式?表达式1:表达式0 当条件表达式为true则选择表达式1,反之false则选择表达式0 举个栗子 var age15; console.log(age<18?未成年:成年);结果为…