美文网首页
HTTP网络协议(二)

HTTP网络协议(二)

作者: 小小小小饼 | 来源:发表于2021-09-14 16:17 被阅读0次

    HTTP网络协议(二)

    6~7课

    6.数据层_数据链路层
    Q:为什么计算机第一次ping都是失败的,后三次都成功?(第一次为什么丢包)
    因为路由器忙不过来,路由器要进行下一步广播ART获取到PC的MAC网卡地址。

    网络互联模型
    客户端层层封装,服务器进行拆包

    为了更好的促进互联网网络的研究和发展,国际标准化组织ISO在1985年制定了互联网连接模型
    -OSI参考模型,具有七层(理论模型

    • TCP/IP模型,实战性更强


      PowerPoint HXTH1b - [01_#4.pptx] - PowerPoint.PNG

    请求过程


    MeTER CO M49E.PNG

    物理层(Physical)
    ———————————物理层(Physica)start—————————————
    物理层定义了接口标准、线缆标准、传输速率、传输方式等

    客户端面试常问网络,会问应用层、传输层。HTTPS,更深一段传输层牵扯到拥塞控制、传输控制。网络层问得少,数据链层更少

    数字信号、模拟信号
    模拟信号(Analog Signal}
    -连续的信号,适合长距离传输
    -抗干扰能力差,收到干扰时波形变形很难纠正

    数字信号(Digital Signal)
    -离散的信号,不适合长距离传输
    -抗干扰能力强,受到干扰时波形失真可以修复

    数据通信模拟
    局域网通信模型
    广域网通信模型

    信道(Channel)
    信道:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道

    单工信道
    -信号只能往一个方向传输,任何时候都不能改变信号的传输方式
    -比如无线电广播、有线电视广播

    半双工通信
    -信号可以双向传输,但必须是交替进行,同一时间只能往一个方向传输
    -比如对讲机

    全双工通信
    -信号可以同时双向传输
    -比如手机(打电话,听说同时进行)
    ——————————物理层(Physical)end—————————————

    数据链路层(Data Link)
    -链路:从一个节点道相邻节点的一段物理路线(有线或无线),中间没有其他交换节点

    数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输
    -不同类型的数据链路,所用的通信协议可能是不同的
    广播信道:CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
    点对点信道:PPP协议(比如两个路由器之间的信道)

    数据链路层的三个基本问题
    -封装成帧
    -透明传输
    -差错检验

    封装成帧
    帧(Frame) 的数据部分
    -就是网络层传递下来的数据包(IP数据包,Packet)

    最大数据传输单元MTU(Maximun Transfer Unit)
    -每一种数据链路层协议都规定了所能够传输的帧的数据长度上限
    -以太网的MTU为1500个字节

    透明传输

    使用SOH(Start Of Header)作为帧开始符
    使用EOT(End Of Transmission)作为帧结束符

    数据一旦出现了SOH、EOT,就需要进行转义(插入ESC字节填充)

    差错检验FCS
    信道上受到干扰,帧的部分计算出一个FCS
    FCS是根据数据部分 + 收不计算的得出的

    CSMA/CD( Carrier Sense Multiple Access with Collision Detectio))(集线器)
    -载波帧听多路访问/冲突检测

    使用了CSMA/CD的网络可以称为是以太网(Ethernet),它传输的以太网帧
    -以太网帧的格式有:Ethernet V2标准、IEEE的802.3标准
    -使用最多的是:Ethernet V2标准

    为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节(信道的两倍)

    用交换机组建的网络,已经支持双工通信,不需要再使用CSMA/CD, 但它传输的帧依然是以太网帧
    -所以,用交换机组建的网络,依然可以叫做以太网

    Ethernet V2
    以太网Ethernet V2帧,用了曼彻斯特,接收端接收帧过程只要发现没有信号跳变,就认为帧结束,即不需要帧开始符、帧结束符。

    (物理层会有一个帧开始顶定界符,但没有帧结束顶定界符)

    首部:源MAC + 目标MAC + 网络类型
    以太网帧:首部 + 数据 + FCS
    数据的长度至少是:64-6-62–4 = 46字节

    当数据部分的长度小于46字节
    -数据链路层会在数据的后面加入一些字节填充
    -接收端会添将添加的字节除掉

    长度总结
    -以太网帧的数据长度:46~1500字节
    -以太网帧的长度:64~1518字节(目标MAC + 源MAC + 网络类型 + 数据 + FCS)

    PPP协议(Point to Point Protocol)
    数据链路层

    集线器在物理层

    PPP协议

    网络层开个头

    网络层(Network)
    网络层数据包(IP数据包,Packet) 由首部、数据2部分组成
    -数据:很多时候是由传输层传递下来的数据段(segment)
    -首部:固定部分(20个字节) + 可变部分


    版本(Version)
    -占四位
    -0b0100: IPv4
    -0b0110:IPv6

    首部长度(Header Length)
    -占四位,二进制乘以4才是最终长度
    -0b0101:54 = 20(最小值)
    -0b1111: 15
    4 = 60(最大值)

    1. 网络层_UDP
      推荐的书:TCP协议 卷一 卷二
      工具:Wireshark

    区分服务(Differentiated Services Field)
    -占8位
    可以提高服务质量(牵扯到网络管理,开发了解即可)

    总长度(Total Length)
    -占16位
    -首部+数据的长度之和,最大值65535

    由于帧的数据不能超过1500字节,所以过大的IP数据包,需要分成片(fragments) 传输给数据链路层
    -每一片都有自己的网络首部(IP首部)
    -分成以太网帧,通过网络层首部让服务器知道数据是归属与哪一个请求。
    -数据部分不能超过1460(1500:IP首部 + 数据)

    标示(identification)有记数器
    -占16位
    -数据包的ID,当数据包过大

    标志(Flags)
    -占13位
    -第一位(Reserved Bit): 保留
    -第二位(Don’t Fragment): 1不允许分片,0表示允许分片
    -第三位(More Fragment): 1代表不是最后一片,0代表是最后一片

    片偏移(Fragment offset)
    -占13位
    -片偏移乘以8: 字节偏移
    -每一片的长度一定是8的整数倍
    -每一片都有自己的网络首部(IP首部)

    假设发了800字节
    ICMP 20个网络层首部字节 + 8(ICMP首部有8个字节) + ICMP协议数据
    网络层总长度828

    假设发了4000字节,
    第一到倒数第二个,属于IPv4类型
    最后一个,是ICMP类型

    分片之后,每一片都有网络层IP首部,然后分别传给数据链路层

    1460 + 20首部

    0-1479 1480-2959 2960-3999

    IPv4:1514 (以太网的首部 + 1500长度)
    IPv4:1514
    ICMP:1082 (1068长度)

    ping - 几个用法
    ping /?
    (查看ping的用法)

    ping ip地址 -l 数据包大小
    (发送指定大小的数据包)

    ping ip地址 -f
    (不允许网络层分片)

    ping ip地址 -i TTL
    (设置TTL的值)

    通过tracert、pathping 命令,可以跟踪到数据包经过了那些路由

    DF: don’t fragment 不允许分成片

    生存时间(Time to live, TTL)
    -占8位
    -每个路由器在转发之前回将TTL减1,一但发现TTL减为0,路由器会返回错误报告
    -观察使用ping 命令的TTL,能够推测出对方的操作系统,中间经过了多少个路由器

    Mac 做客户端用的比较多,很少会部署服务器到这里
    一般用Linux
    通过TTL可以推测服务器用的什么操作系统


    EiR 013112.jpeg

    协议(Protocol)

    网络分层


    EiR# 0102.53.JPG

    传输层 面试会问到,需要掌握

    传输层(Transport)
    -TCP(Transmission Control Protocol),传输控制协议
    -UDP(User Datagram Protocol),用户数据报协议
    ![PowerPoint KORTH188R • 104 M1ahil pptx] - PowerPoint.JPG](https://img.haomeiwen.com/i1623463/80c4ba3085e48218.JPG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    UDP是无连接的,减少了建立和释放的开销
    UDP尽最大能力交付,不保证可靠交付
    -因此不需要维护一些复杂的参数,首部只有8个字节(TCP的首部至少20个字节)

    UDP长度(Length)
    -占16位,首部的长度 + 数据的长度

    UDP-检验和(Checksum)
    检验和的计算内容:伪首部 + 首部 + 数据
    -伪首部:仅在计算检验和时起作用,并不会传递给网络层

    端口(Port)
    UDP首部中端口是占用2字节
    -可以推测出端口号的取值范围是:0~65535

    客户端的源端口是临时开启的随机端口

    ![PowerPoint SORTH1RR • 104 Waahi pptx] - PowerPoint.PNG](https://img.haomeiwen.com/i1623463/8891dd2d39477f1c.PNG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    防火墙可以设置开启\关闭某些端口来提高安全性

    相关文章

      网友评论

          本文标题:HTTP网络协议(二)

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