您当前的位置: 首页 >  LEVI_104 网络

网络协议:网络层&传输层

LEVI_104 发布时间:2022-08-25 23:33:29 ,浏览量:3

目录

网络层

 网络层首部

网络层首部--总长度

网络层首部--标识、标志

网络层首部--片偏移

 网络层首部--生存时间

 ping的几个用法

传输层

 UDP

UDP--数据格式

UDP--检验和(Checksum)

端口

网络层

网络层数据包(IP数据包,Packet)由首部、数据两部分组成,数据很多时候是由传输层传递下来的数据段(Segment)

 网络层首部
  • 版本:占四位。(0b0100:IPv4,    0b0110:IPv6)
  • 首部长度(Header Length):占四位,二进制乘以4才是最终长度。(0b0101:20[最小值],    0b1111:60[最大值])
  • 区分服务(Differentiated Services Field):占八位,可以用于提高网络的服务质量(QoS, Quality of Service)
网络层首部--总长度

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

 由于帧的数据不能超过1500字节,所以过大的IP数据包,需要分成片(fragments)传输给数据链路层,每一篇都有自己的网络层首部(IP首部)

网络层首部--标识、标志
  • 标识(Identification):占16位,数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识是一样的,有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1
  • 标志(Flags):占三位。
    • 第一位(Reserved Bit):保留
    • 第二位(Don't Fragment):1代表不允许分片,0代表允许分片
    • 第三位(More Fragments):1代表不是最后一片,0代表是最后一片
网络层首部--片偏移

片偏移(Fragment Offset):占13位。片偏移乘以8:字节偏移。每一片的长度一定是8的整数倍

 下图是cmd中ping百度的过程

 网络层首部--生存时间

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

 ping的几个用法
  • ping /?:查看ping的用法
  • ping ip地址 -l 数据包大小:发送指定大小的数据包
  • ping ip地址 -f:不允许网络层分片
  • ping ip地址 -i TTL:设置TTL的值
  • 通过tracert、pathping命令,可以跟踪数据包经过了哪些路由器
传输层

传输层(Transport)有两个协议:TCP(Transmission Control Protocol),传输控制协议。UDP(User Datagram Protocol),用户数据报协议

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

 UDP长度:占16位,首部的长度 + 数据的长度

UDP--检验和(Checksum)

检验和的计算部分:伪首部 + 首部 + 数据 

端口
  • UDP首部中端口是占用2字节,可以推测出端口号的取值范围是:0~65535
  • 客户端的源端口是临时开启的随机端口
  • 防火墙可以设置开启和关闭某些端口来提高安全性

 常用命令行

  • netstat -an:查看被占用的端口
  • netstat -anb:查看被占用的端口,占用端口的程序,需要管理员权限
  • telent 主机 端口:查看是否可以访问主机的某个端口
    • 按照telent:控制面板--程序--启用或关闭Windows功能--勾选Telent Client选项
关注
打赏
1688896170
查看更多评论

LEVI_104

暂无认证

  • 3浏览

    0关注

    41博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0381s