美文网首页
网络分层

网络分层

作者: qinxi | 来源:发表于2021-08-24 16:08 被阅读0次

OSI模型(共七层)

1.物理层 2.数据链路层 3.网络层 4.运输层 5.会话层 6.表示层 7.应用层

TCP/IP协议模型

1.网络接口层(Network Access) 2.网际层(Internet)3.运输层(Transport)4.应用层(Application)

应用层   FTP,HTTP,SMTP,DNS,DHCP    报文,用户数据

运输层   TCP,UDP  段

网络层  IP,ARP,ICMP  包

数据链路层  CSMA/CD, PPP 帧

物理层       比特流

物理层通信模型

局域网模型:

PC——(网线,数字信号)——集线器/交换机——(网线,数字信号)——PC

广域网通信模型

PC——(网线,数字信号)——调制解调器——(电话线,模拟信号)——调制解调器——(网线,数字信号)——PC

PC——(网线,数字信号)——光电转换器——(光信号,光纤)——光电转换器——(网线,数字信号)——PC

数据链路层

Ethernet V2协议,使用CSMA/CD技术,(同轴电缆,集线器)

以太网帧的格式:

首部:源MAC(6字节)+目标MAC(6字节)+网络类型(2字节,IPV4还是IPV6)

以太网帧:首部+数据+FCS(4字节)

数据的长度46-1500字节

整个以太网帧的长度是64-1518字节

PPP协议(点对点协议)

网络层

网络层数据包由首部(至少20个字节,包含版本,首部长度,区分服务,总长度,标识,标志,片偏移,生存时间,协议,首部检验和,源IP地址,目标IP地址,可选字段(最多40个字节))+数据2部分组成

由于帧的数据不能超过1500字节,过大的IP数据包,需要分成片传输给数据链路层

每一片都有自己的网络层首部

传输层

TCP:面向连接,可靠传输,首部占用空间大(至少20个字节,最多60个字节),传输速率慢,资源消耗大,应用场景:浏览器,文件传输,邮件发送,对应的应用层协议:HTTP,HTTPS,FTP,SMTP,DNS

首部:源端口+目的端口+序号+确认号+数据偏移+保留+标志位+窗口+检验和+紧急指针+选项(长度可变)+填充

标志位

URG=1时,紧急指针字段才有效,表明前多少位的是紧急数据,应当尽快传输

ACK=1时,确认号才有效

PSH(push)

RST=1时,表明连接中出现问题,需要重连

SYN=1,ACK=0时,表明这是一个建立链接的请求

SYN=1,ACK=1时,服务器回复客户端可以建立连接

FIN=1时,表明数据已经发送完毕,要求释放连接

序号seq4 字节:建立连接后,序号代表这一次给对方的TCP数据部分的第一个字节的编号

确认号ack 4字节:建立连接后,期望下一次传过来的数据部分的第一个字节的编号

可靠传输:ARQ停止等待自动重传请求,连续ARQ+滑动窗口协议,SACK选择性确认

流量控制(点对点):通过确认报文中的窗口字段来控制发送方的发送速率

当窗口为0时,开始定时器询问最新窗口

拥塞控制:避免网路中的路由器或链路过载,涉及到所有的主机和路由器

发送窗口=min(拥塞窗口,接收窗口)

慢开始(慢启动):cwnd的初始值比较小,然后随着数据包被接收方确认(收到一个ACK),cwnd就成倍增长

拥塞避免:ssthresh:慢开始阈值,cwnd达到阈值后,以线性方式增加,丢包后网络可能出现拥塞,阈值乘法减小同时cwnd执行慢开始算法(老版本)

快速重传:

接收方:每收到一个失序的分组后就立即发出重复确认

发送方:只要连续收到三个重复确认(总共4个相同的确认),就应当立即重传对方尚未收到的报文段

快速恢复

当发送方连续三个重复确认后,执行乘法减小,把ssthres减半,cwnd不恢复初始值,直接开始执行拥塞避免算法

连接管理:3次握手,4次挥手

第一次握手:SYN=1,ACK=0 ,客户端的序号初始值

第二次握手:SYN=1,ACK=1,服务器的序号初始值

第三次握手:SYN=0,ACK=1

第一次挥手:主机1发出FIN报文,表示主机1已经没有数据要发送了,但是此时主机1还是可以接收来自主机2的的数据

第二次挥手:主机2返回ACK报文,表示主机2已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的

第三次挥手:主机2发送FIN报文,表示主机2已经没有数据要发送了

第四次挥手:主机1返回ACK报文,表示主机1已经知道主机2没有数据发送了,随后(一般为2倍的MSL,MSL建议为2分钟)正式断开整个TCP连接

UDP:无连接,不可靠传输,首部占用空间小(8个字节,源端口,目标端口,长度,检验和),传输速率快,资源消耗小,应用场景:音视频通话,直播,对应的应用层协议:DNS

应用层:

HTTP:

ABNF语言规定

请求行

request-line = method SP request-target SP HTTP-version CRLF

例:GET /hello/ HTTP/1.1

请求头:

head-field = field-name ":" OWS field-value OWS

User-Agent:浏览器身份标识字符串

Host:服务器的域名,端口号

Date:发送的时间

Referer:前一个链接

Content-Type:请求体的类型,application/x-www-form-urlencoded(表单提交),multipart/form-data(文件上传)

Content-Length:请求体的长度

Accept:能够接受的响应内容类型,text/plain

Accept-Charset:能够接受的字符集,utf-8

Accept-Encoding:能够接受的编码方式列表

Accept-Language:能够接受的响应内容的自然语言列表en-US

Range:仅请求某个实体的一部分,断点续传

Origin:发起一个针对跨域资源共享的请求

Cookie:之前通过服务器Set-Cookie发送的Cookie

Connection:该浏览器想要优先使用的链接类型

Cache-Control:用来指定在这次的请求/响应链中的所有缓存机制都必须遵守的指令

message-body = *OCTET

status-line = HTTP-version SP status-code SP reason-phrase CRLF

例:HTTP/1.1 200 或者 HTTP/1.1 200 OK

响应头

Date

Last-Modified

Server

Expires

Content-Type:text/html; charset=utf-8

Content-Encoding

Content-Length

Content-Disposition:一个可以让客户端下载文件并建议文件名的头部

Accept-Ranges:服务器支持哪些种类的部分内容范围:bytes

Content-Range:这部分消息是属于完整消息的哪部分

Range

Origin:跨域

Cookie:

Connection

Cache-Control

Accept

Accept-Charset

Accept-Encoding

Accept-Language

响应体

请求方法:

GET:常见于读取操作,参数直接拼接在URL的后面(URL长度有限制)

POST:常用于添加,修改,删除,请求参数放在请求体里面

HEAD:请求得到与GET请求相同的响应,但没有响应体,使用场景:在下载一个大文件前,先获取其大小,再决定是否下载

OPTIONS:获取服务器支持哪些方法

PUT:用于对存在的资源进行覆盖

PATCH:用于对资源进行部分修改,资源不存在会创建

DELETE:用于删除指定的资源

TRACE:环回测试,主要用于HTTP请求的测试或诊断

状态码分为5类:

信息响应:100-199

成功响应:200-299

重定向:300-399

客户端错误:400-499

服务器错误:500-500

常见状态码:

100:Continue,继续发送剩余请求

200:OK 成功

302:Found 请求的资源被暂时的移动到了由Location头部指定的URL上,重定向

304:Not Modified 可以使用缓存的内容

400:Bad Request 语法无效

401:缺乏目标资源要求的身份验证凭证

403:拒绝授权访问

404:无法找到请求资源

405:服务器禁止了使用当前HTTP方法的请求

406:服务器无法提供与Accept-Charset以及Accept-Language指定的值相匹配的响应

408:服务器想要将没有在使用的连接关闭

500:服务器出问题了

501:请求的方法不被服务器支持

503:服务器停机维护或超载

相关文章

  • 网络分层

    1:应用层 规定应用程序的数据格式即数据协议,方便应用程序解读收到的传输层传来的数据。主要协议有:HTTP、FTP...

  • 网络分层

    把平时的7层分成四层

  • 网络分层

    把7层协议分成4层应用层 (服务器 客户端 浏览器 ) 在应用层 通过scoket套接字向下层传输 也可以直接到...

  • 网络分层

    网络分层有分为七层的、五层的、四层的,今天我要记录的是五层分层方式。 五层分别是物理层、链接层、网络层、传输层、应...

  • 网络分层

  • 网络分层

    TCP/IP分为四层 应用层原因:数据的传输和网络的访问是通过协议来进行的,FTP、SMTP、telnet、DNS...

  • 网络分层

    网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,以及控制信息的加载或拆出等工作,分别由不同的硬件和软...

  • 网络 分层

    OSI/RM 模型 在1978年国际标准化组织(ISO)提出了“开放系统互连参考模型”,即著名的OSI/RM 模型...

  • 网络分层

    OSI模型(共七层) 1.物理层 2.数据链路层 3.网络层 4.运输层 5.会话层 6.表示层 7.应用层 TC...

  • 网络分层

    网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,以及控制信息的加载或拆出等工作,分别由不同的软件和硬...

网友评论

      本文标题:网络分层

      本文链接:https://www.haomeiwen.com/subject/tdhjvltx.html