文章目录

  • 一、网络层
    • 1、IP数据包格式
    • 2、ICMP协议
    • 3、ARP协议
  • 二、传输层
    • 1、TCP协议
      • 1.1、TCP报文段
      • 1.2、TCP 三次握手
      • 1.3、TCP 四次挥手
      • 1.4、TCP端口号
    • 2、UDP协议

一、网络层

网络层的功能

  • 定义了基于IP地址的逻辑功能
  • 连接不同的媒介类型
  • 选择数据通过网络的最佳路径

网络层主要的媒介是路由器,同一个网络不需要路由器,不同网络就需要使用路由器,网络层的主要协议是:IP;其余四个协议:ICMP、IGMP、ARP、RARP是围绕IP展开的。

1、IP数据包格式


版本:识别是IPV4(OX40)还是IPV6,基本上是IPV4;
首部长度:不带数据的IP包头部长度;
优先级与服务类型:定义IP数据包是否优先传送;
总长度:定义IP数据包总长度是多少;
标识符:用于IP数据包的分片,给每个分片打标;
标志:标志和分片一起被用来船体信息分片之后,是否分片;
段偏移量:分片之后需要重组,根据原有的顺序排列,保证是一个完整正确的顺序传输;
TTL:Time to live,网络中生存时间,每经过一个路由器减一,减到0后数据包就被丢弃了,IP包被路由器丢弃之前允许通过的最大网段数量;
协议号:标志了上层数据,是TCP,还是UDP?
首部校验和:为了数据的传输完整,会进行一个校验,如果出错或者丢包会进行重传;
源地址:从哪发出,发送数据包的设备网络地址;
目标地址:发哪去,接收点的设备网络地址;
可选项:根据实际情况可变长,可以和IP一起使用的选项有多个。

2、ICMP协议

ICMP协议用于IP主机、路由器之间传递控制消息,这里的控制消息可以包括很多种,从TCP/IP的分层结构看ICMP属于网络层,它配合着IP数据报的提交,提高IP数据报递交的可靠性; 主要功能是发送错误消息,不用于传输数据

  • 协议包含以下三点功能

    • ICMP是一个“错误侦测与回馈机构”
    • 是通过IP数据包封装的
    • 用来发送错误和控制消息
  • ICMP协议的封装分为2部分介绍

    • ICMP协议属于网络层协议
    • ICMP数据的封装过程,如下图,ICMP是封装在IP数据报中进行发送的
  • 协议Ping
    PING命令是用来检查要到达的目标IP地址并记录结果,显示目标是否响应以及接收答复所需的时间。如果在传递到目标过程中有错误,ping 命令将显示错误消息。

    • Ping命令
      命令的基本格式:
C:\ping[-t][-l字节数][-a][-i] IP_Address| target_name

举例说明

PC>ping 192.168.1.3Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: bytes=32 seq=1 ttl=128 time=47 ms
From 192.168.1.3: bytes=32 seq=2 ttl=128 time=63 ms
From 192.168.1.3: bytes=32 seq=3 ttl=128 time=62 ms
From 192.168.1.3: bytes=32 seq=4 ttl=128 time=63 ms
From 192.168.1.3: bytes=32 seq=5 ttl=128 time=62 ms--- 192.168.1.3 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 47/59/63 ms

  • Ping抓包对应的消息类型和编码类型:

    这些是在Ping抓包的时候,没有抓到包对应的报错信息。
    请求是发广播,应答是发单播。

    • Ping命令返回信息的含义
 -t:参数会一直不停的执行Ping-a:可以显示参数主机的名称-l:参数可以设定Ping包的大小,ping -l 后面跟着单位参数

如下图

3、ARP协议

  • 协议概述
    地址解析协议,基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。主要作用于网络层IPv4中的协议。
  • 工作原理
    • IP地址解析为MAC地址
      比如电脑PC1发送数据给PC2,查看ARP缓存没有PC2的MAC地址,那么PC1发送ARP请求消息(广播),然后所以主机就能接收到ARP请求信息,PC2回应ARP应答(单播),其他主机丢弃数据。
      ARP有Rquest(请求消息)和Reply(应答消息)
    • 动态ARP老化时间 180s,静态没有老化时间

问:pc1需要给pc2发送数据原理?其中设置mac地址:pc1为11,pc2为22
答:pc1会发数据给pc2,首先查看arp缓存表,源ip10.0.0.1,源mac11,向pc2发送广播,这时候pc2接收到会回应pc1并且回应,这时候源ARP地址就10.0.0.2,源Mac地址变成22,其他无关的主机就会丢弃数据。

  • ARP的报文结构

    以太网首部,指的帧头的MAC目的地址和源地址,是ARP的帧头
    帧类型:ARP,0P:0是请求,1是回应。
  • ARP相关命令**
    • arp-a 查看ARP缓存表
    • arp-d 清除ARP缓存
    • ARP绑定
  • ARP原理

    需求分析:
    对等网的环境
    PC1和PC2第一次通信

实现步骤:

  1. 使用ipconfing/all查看PC1和PC2的MAC地址
  2. 用“arp-a”查看ARP缓存
  3. 在PC1上ping PC2后,再用“arp-a”查看ARP缓存
  • ARP攻击原理

    • 欺骗其他所有计算机
    • 欺骗被攻击计算机 (这两点主要是让你上不了网)
    • ARP欺骗网关,如下图(ARP没有检查的机制,所以来信息就会被记录上,窃取信息)。※ARP欺骗主机
      ※利用ARP欺骗管理网络
      通过长角牛网络监控机软件管理网络
  • ARP的故障处理
    使用ARP防火墙,自动抵御ARP欺骗和攻击

    • 在主机B上开启ARP防火墙
    • 在主机A上开启长角牛网络监控机,模拟ARP病毒
    • 查看ARP防火墙统计数据的变化
    • 在主机B上测试与网关的连通性。

二、传输层

传输层的功能:定义传输数据的协议端口号,以及流控和差错校验,主要的协议是:TCP、UDP

1、TCP协议

全称: 传输控制协议, 顾名思义, 就是要对数据的传输进行一定的控制

  • 是面向连接的、可靠的进程到进程通信的协议:是指在每一次我访问之前,先进行一个连接,建立一个安全的通道;
  • 提供全双工服务,即数据可在同一时间双向传输
  • TCP报文段:因为传输层的协议是数据段,TCP是传输层的主要协议
    TCP将若干个字节构成一个分组,叫报文段
    TCP报文段封装在IP数据报中

1.1、TCP报文段


序号: 发送的时候会给每个字节进行编号,编号是为了重组用的;
确认号 用于确认已接收发送端的信息,和序号是一对;
首部长度:tcp整个头部的长度;
保留6个控制位:URG AVK PSH SYN FIN ;
窗口大小:网络传的通道,若没有其他数据传输时,就把通道改大,数据就会传输的多且快,反之同理;
校验和:校验数据是否完整;
六个控制位分别的意思
FIN 当TCP断开连接时将该位置为1
RST 重传的机制
PSH 当数据在传输过程中因意外关闭,或者对方拒绝请求,该值置为1
URG:紧急指针字段有效.他告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级数据),而不要按原来的排队序列来传送;
SYN:同步序列号位,TCP需要建立连接时需讲此位设置为1;
ACK:确认序号位,当该位为1时,用于确认发送方。

1.2、TCP 三次握手

TCP建立连接的过程叫三次握手

  1. 客户端产生初始化序列号Seq=x,向服务端发送建立连接的请求报文,将SYN=1同步序列号;
  2. 服务端接收建立连接的请求之后,产生初始化序号Seq=y,确认客户端的SYN(Ack=x+1),向客户端发送建立连接的请求(SYN=1),确认客户端的数据(ACK=1)
  3. 客户端收到服务端的回复(Ack=y+1,包含收到请求,确认信号),ACK=1,确认客户端的数据,三次握手成功

1.3、TCP 四次挥手

  1. 客户端发送断开连接(FIN=1)请求给服务端,断开连接确认(ACK=1),第一次挥手;
  2. 服务端接收到断开连接的请求,发回一个ACK确认包,第二次挥手;
  3. 服务端再次确认(ACK=1)请求断开服务器(FIN=1),第三次挥手;
  4. 最终客户端确认断开连接请求(ACK=1),第四次挥手

拓展:2和3需要两步的原因是什么?
第一次接收到客户端的请求时,但是服务器的数据并没有传输完成,待我把数据传输完成之后就可以关闭连接了;第四次挥手也没有真正的关闭,需要经过一个time-wait:2msl,存在的原因是等个1-4分钟确认未发送完成的数据发送完成。

1.4、TCP端口号

常用的端口号及其功能

2、UDP协议

全程:用户数据报协议

  • 是一种无连接,不可靠的传输协议
  • 优点是花费的开销小

UDP报文的首部格式如下:

UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成对UDP数据的差错校验,他是UDP协议提供的唯一可靠机制

  • 常用的UDP端口号及其功能

网络服务——网络层:IP、ICMP、ARP与传输层:TCP、UDP相关推荐

  1. 网络层协议与应用及传输层TCP/UDP协议

    网络层协议与应用及传输层TCP/UDP协议 目录 一.IP数据包格式 二.ICMP协议 三.ARP协议及ARP工作原理 四.TCP协议及常用端口号 五.UDP协议及常用端口号 一.IP数据包格式 网络 ...

  2. 传输层 - TCP / UDP 协议详解

    我是目录: 1.UDP协议: 2.TCP协议: (1)TCP协议段格式: (2)确认应答(ACK)机制 (3)超时重传机制: (4)连接管理机制(三次握手.四次挥手) (5)滑动窗口: (6)流量控制 ...

  3. Java 网络编程(二) 两类传输协议:TCP UDP

    两类传输协议:TCP,UDP TCP TCP是Transfer Control Protocol(传输控制协议)的简称,是一种面向连接的保证可靠传输的协议. 在TCP/IP协议中, IP层主要负责网络 ...

  4. 传输层TCP/UDP协议

    可靠的TCP协议(传输层) 1)  TCP封包结构如下图: 各字段的含义为: 封包序号:记录每个封包的序号,当TCP封包大于IP封包的长度时,TCP封包就需要拆分成更小的包,来下发给网络层,通过该字段 ...

  5. Python--网络编程-----传输层tcp/udp协议

    一.传输层的功能是建立端口到端口的通信 二.TCP协议 1.可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TC ...

  6. 传输层TCP/UDP的一些疑问

    目录 1. TCP为什么要进行三次握手及四次挥手 2. http和https协议下握手过程有什么区别 可能之前专门研究过TCP/IP的原因,现在碰到这方面的内容就像刚一刚 1. TCP为什么要进行三次 ...

  7. 网络基础网络层--IP协议

    网络基础网络层--IP协议 一.IP协议解析 (一)4位版本 (二)4位报头长度 (三)8位服务类型 (四)16位数据报长度 (五)16位分片标识 (六)3位分片标志 (七)13位分片偏移 (八)8位 ...

  8. TCP/IP参考模型-传输层TCP

    系列文章目录 由于因特网的实现是一个分层架构,为了防止篇幅过大,笔者不想一篇文章就写完想表达的所有内容,于是会以系列文章的方式,主要内容包括TCP/IP分层架构.网络层的最短路径算法:Dijkstra ...

  9. 计算机网络4小时速成:网络安全,被动攻击,主动攻击,对称加密,公钥秘钥,数字签名,鉴别,网络层安全协议IPsec,传输层安全协议SSL,防火墙,入侵检测系统

    计算机网络4小时速成:网络安全,被动攻击,主动攻击,对称加密,公钥秘钥,数字签名,鉴别,网络层安全协议IPsec,传输层安全协议SSL,防火墙,入侵检测系统 2022找工作是学历.能力和运气的超强结合 ...

最新文章

  1. 1-flutter 安装步骤
  2. Poj_1274 The Perfect Stall -二分图裸题
  3. NLP——基于transformer 的翻译系统
  4. getaddrinfo(localhost.localdomain): 未知的名称或服务
  5. 编码练习——Java-7-集合类
  6. java象棋人机代码_中国象棋人机对弈Java版源码
  7. linux 分卷压缩命令,linux 分卷压缩命令
  8. sort()排序(Comparable、Comparator)
  9. 查看linux版本的三种常用方法
  10. h3cIP和TCP抓包分析实验
  11. Pytorch求向量的L1范数或L2范数
  12. PHP 纯汉字包括生僻字的验证方式
  13. 颜色直方图匹配(一)
  14. Read timed out executing GET (读取执行GET超时)
  15. 基于STM32_HAL库GY-30(BH1750FLV)驱动
  16. DNS这位“翻译官”是如何转换域名和IP地址的?
  17. 全球及中国口腔医疗行业投融资现状与与运营效益分析报告2022版
  18. python + win32api,win32gui,win32con 写 exe 窗口的时候,怎么创建按钮呢?
  19. 如何关闭ios模拟器
  20. MySQL索引. ref_MySQL索引类型(type)分析

热门文章

  1. [转载] 李培根-华中科技大学校长李培根在2010届毕业典礼上的演讲全文
  2. 计算机网络wireshark抓包实验
  3. Optional int parameter ‘categoryId‘ is present but cannot be translated into a null value due to be
  4. iframe常见问题详解
  5. 中国用“新基建”打响“疫”后经济重建 深耕AI的百度迎来新增长机遇
  6. 可用于学习的程序小项目
  7. SpringBoot工程构建时pom父文件导入失败(父类启动依赖导入失败)
  8. 烟锁重楼,情缘若梦终是空
  9. linux 常用软件2
  10. A. 小天狼星的访问(A*思想)