目录

网络层

网络层首部

网络层首部--总长度

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

网络层首部--片偏移

网络层首部--生存时间

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选项

网络协议:网络层传输层相关推荐

  1. TCP、UDP(网络协议:传输层协议)

    面试和笔试中,如果记住下面这张图,基本就能解决网络协议中70%的问题.需要记住: OSI模型和TCP/IP模型每一层名称: 每一层对应有哪些协议,或者说给出该协议要知道对应那一层: 该协议是基于TCP ...

  2. 网络协议分析 | 传输层 :史上最全UDP、TCP协议详解,一篇通~

    文章目录 UDP 概念 格式 UDP如何实现可靠传输 基于UDP的应用层知名协议 TCP 概念 格式 保证TCP可靠性的八种机制 确认应答.延时应答与捎带应答 超时重传 滑动窗口 滑动窗口协议 后退n ...

  3. 网络协议:传输层(http://java-mzd.iteye.com/blog/1007577)

    转载于:https://www.cnblogs.com/balala/p/6474637.html

  4. 网络层协议和传输层协议

    目录 一.网络层功能 二.IP数据包格式 三.ICMP协议 四.ARP协议 五.传输层协议 六.TCP报文段 七.TCP三次握手 八.TCP四次断开 九.常用的TCP端口号及功能 十.UDP协议 十一 ...

  5. Linux - 第18节 - 网络基础(传输层一)

    目录 1.传输层 1.1.再谈端口号 1.2.端口号范围划分 1.3.认识知名端口号 1.4.两个问题 1.5.netstat命令 1.6.pidof命令 2.UDP协议 2.1.UDP协议格式 2. ...

  6. 网络协议基础01-七层网络协议

    前言:为什么学? 1.避不开:几乎所有的程序运行都会涉及到网络协议 2.不过时:越基础知识越不容易过时,值得花时间深入学习和积累. 容器技术.大数据.云计算.人工智能.区块链...等技术更新迭代速度很 ...

  7. TCP\IP 协议栈中的协议 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

    粉丝不过W 7 层体系的 OSI 参考模型,低层为 1~4 层:面向通信, 高层为 5~7 层:面向信息处理 物理层(Physical Layer) 利用一些物理媒体, 如双纽线. 同轴电缆等 传递信 ...

  8. 网络编程之 传输层的协议TCP与UDP

    传输层协议: TCP和UDP的区别: TCP:面向连接(经历三次握手).传输可靠(保证数据正确性,保证数据顺序).用于传输大量数据(流模式).速度慢,建立连接需要开销较多(时间,系统资源). 服务端和 ...

  9. 网络基础之传输层协议介绍(“三次握手”和“四次挥手”)

    文章目录 一.TCP/IP协议簇的传输层协议: 1.TCP和UDP 2.TCP报文段 二.TCP的"三次握手"和"四次挥手" 1."三次握手" ...

最新文章

  1. 工业界AI项目落地的繁琐过程
  2. DSS转发中sdp文件的简化
  3. python适配器模式角色_python设计模式-适配器模式
  4. python 获取Dmidecode 输出的系统硬件信息
  5. Loguru:Python 日志终极解决方案
  6. 新能源汽车累计补贴审核情况出炉:比亚迪、吉利两家独大
  7. system.exception所有子类详解
  8. 解决mysql从windows迁移到centos出现乱码问题
  9. 第五章 Spring3.0 、Hibernate3.3与Struts2的整合 基于Annotation
  10. CCRD_TOC_2008年第1期
  11. 软件测试流程(完整版)
  12. 打开微信备份文件db_安卓手机微信数据导出方法-adb备份(无需root) - Fenlog软件...
  13. git 创建邮箱 用户名_初次安装git配置用户名和邮箱及密钥
  14. redis搭建哨兵天坑
  15. 如何正确看谷歌文档android,在Android webview中查看google文档中的pdf时“无法预览”...
  16. 练手小项目——别踩白块小游戏
  17. JD旗舰店店铺商品详情接口代码对接教程
  18. PySide2 connect 时指定槽函数的参数
  19. hiho第三周 KMP
  20. 2022CVPR:一种用于空间变形的文本注意网络鲁棒场景文本图像超分辨率

热门文章

  1. 观《风筝》电视剧感想
  2. 《软件登记测试报告》可以作为软件第三方检测报告使用吗
  3. MATLAB 中contour的应用
  4. 最最最详细的C语言教程笔记零起步(10)进阶必备 同笔者一起学习
  5. 企业固定资产管理系统建设方案
  6. tensorflow实现卷积神经网络——经典网络(LeNet5、AlexNet、VGG-16、ResNet)
  7. SQL Server 2008 问题——已成功与服务器建立连接,但是在登录过程中发生错误。
  8. 电脑内存条频率怎么查看
  9. [python爬虫]爬取微信公众号
  10. linux代码布局,Linux内存布局(示例代码)