当前位置: 首页 > article >正文

day024-网络基础-TCP与UDP、DNS

文章目录

  • 1. 李导推荐书籍
  • 2. OSI七层模型
    • 2.1 传输层
    • 2.2 网络层
      • 2.2.1 问:两端处于不同局域网的设备怎么网络通信?
    • 2.3 数据链路层
    • 2.4 物理层
    • 2.5 图解OSI七层模型
  • 3. 数据传输模式
    • 3.1 全双工
    • 3.2 半双工
    • 3.3 单工
  • 4. TCP 3次握手
    • 4.1 抓包
  • 5. TCP 4次挥手
    • 5.1 问:在TCP协议中,**三次握手**时服务端将 `ACK`和 `SYN`合并为一个包发送,但**四次挥手**时 `ACK`和 `FIN`却需要分开发送,这是为啥?
    • 5.2 抓包
  • 6. UDP抓包
    • 6.1 udp服务端
    • 6.2 udp客户端
    • 6.3 wireshark过滤
  • 7. 面试题:TCP与UDP的区别?
  • 8. DNS 域名解析协议
    • 8.1 域名结构
    • 8.2 DNS记录类型
    • 8.3 dig命令
  • 9. 思维导图

1. 李导推荐书籍

  • TCP/IP详解

在这里插入图片描述

2. OSI七层模型

  • 下层为上层提供服务;
  • 如数据链路层为网络设备建立点对点的物理链路,为网络层提供 无差错的帧传输,所以网络层才能顺利实现路由寻址并建立端到端的连接;
  • 而再此基础上,传输层才可以通过端口为应用服务提供传输支持

2.1 传输层

  • 传输层通过指定端口号管理或控制端到端的数据传输
  • 传输层的两个数据传输协议:TCP、UDP
  • TCP协议:面向可靠连接(建立连接需3次握手,断开连接需4次挥手)
  • UDP协议:不可靠连接(直接建立、断开,尽力传输数据)
  • 数据在传输层叫做数据报(udp)或段(tcp)

2.2 网络层

  • 网络层通过IP寻址为网络设置建立端到端的连接
  • 核心协议:IP协议
  • ICMP(网络控制管理协议)也属于网路层
  • 代表设备:路由器、三层交换机
  • SRC:原地址;DST:目的地址
  • 数据在网络层叫做数据包

2.2.1 问:两端处于不同局域网的设备怎么网络通信?

  • 只有具有公网IP的设备才能网络通信
  • 而大部分的网络设备处于局域网,明显依靠网关的NAT转换技术
  • 所以这两个设备是使用公网IP进行通信的
  • 但是通过这两个公网IP只能被定位到两个网关,而不是局域网的设备!
  • 因此IP地址(网络层)无法直接实现本地网络(局域网)精准寻址
  • 所以需要比IP地址更为准确的寻找网络设备的标志—MAC地址

2.3 数据链路层

  • 网络层建立的连接是逻辑链路,而数据链路层是依靠MAC地址(网卡地址)和以太网协议为网络通信建立可靠的点对点物理链路,确保数据帧的精准投递
  • 因此数据在局域网时是通过Mac地址进行通信的(IP地址为数据传输指明了方向,MAC地址为其明确了前进道路
  • Mac地址有48位
  • 数据在该层叫做数据帧
  • 代表设备:二层交换机

在这里插入图片描述

2.4 物理层

  • 物理层将数据帧转换成二进制的数据:0101……
  • 二进制依然是一堆数据,而物理链路(以太网、光纤)只能传输电信号或光信号;于是用不同的电平来表示1还是0(比如高电压是1,低电压是0),将数据转换成电信号的设备就是调制解调器
  • 而将电信号与光信号相互转换的就是光猫

2.5 图解OSI七层模型

在这里插入图片描述

3. 数据传输模式

3.1 全双工

  • 数据可同时双向传输
  • 代表设备:电话、网络、TCP通信、交换机

3.2 半双工

  • 数据可双向传输,但是同一时间只能向单向传输,需要双方设备交替进行
  • 代表设备:hub(集线器)、对讲机

3.3 单工

  • 数据只能单向传输,一方为发送端,一方为接收端
  • 代表设备:广播、收音机、键盘

4. TCP 3次握手

  • 知晓TCP实现了全双工数据通信,是理解TCP3次握手的基础
  • TCP是传输层协议,因此3次握手是与端口建立连接
  • SYN :Synchronize,同步
  • ACK:Acknowledge,确认
  • PSH:push,发送数据
  • seq:sequence,序列号

在这里插入图片描述

4.1 抓包

在这里插入图片描述

5. TCP 4次挥手

  • 四次挥手是为了断开连接
  • 也是需要断开两次单向通信线路
  • FIN:Finish,终止连接

在这里插入图片描述

5.1 问:在TCP协议中,三次握手时服务端将 ACKSYN合并为一个包发送,但四次挥手ACKFIN却需要分开发送,这是为啥?

  • 三次握手
    握手时双方尚未开始传输数据,服务端收到 SYN后可以立即同意连接(ACK)并同时发起自己的 SYN请求。此时没有数据需要处理,合并发送不会影响可靠性。
  • 四次挥手
    挥手时双方可能仍有未传输完的数据。服务端收到 FIN后,需要先 ACK确认收到关闭请求(确保对方知道已收到),然后继续发送剩余数据,最后再发送自己的 FIN关闭连接。如果强行合并 ACKFIN,可能导致数据丢失。依然是为了通信的可靠性设计的。

5.2 抓包

在这里插入图片描述

  • 第二个数据包(服务端→客户端)的ACK和FIN标志位同时置位,是TCP协议允许的优化行为
  • 如果服务端在收到客户端的 FIN没有剩余数据需要发送,可以直接合并 ACKFIN,减少交互次数。
  • 标准四次挥手ACKFIN分开发送(共4个包)。
  • 优化后的挥手ACKFIN合并发送(共3个包)。

6. UDP抓包

  • telnet仅能连接TCP端口
  • udp端口需要nc命令连接

ncNetcat 的缩写,被称为 “网络瑞士军刀”,是一个功能强大的 命令行网络工具,用于 TCP/UDP 连接监听、端口扫描、文件传输、代理转发 等。

6.1 udp服务端

  • -l:监听模式
  • -u:使用UDP传输协议
  • 创建一个udp端口
  • nc -lu 12306

6.2 udp客户端

  • 连接该端口
  • nc -u 服务端ip 12306

在这里插入图片描述

6.3 wireshark过滤

  • 过滤:udp.port==12306

在这里插入图片描述

7. 面试题:TCP与UDP的区别?

TCP(传输控制协议)UDP(数据报协议)
面向连接(3次握手、四次挥手)无连接
可靠传输不可靠传输
流量监控(检查数据是否丢失,若丢失会重新发送)尽力发送
TCP应用:Web浏览器、电子邮件、文件传输服务UDP应用:DNS、视频(直播服务)、IP语音(VoIP)

8. DNS 域名解析协议

  • DNS作用:将域名解析成ip,供网络设备访问
  • 公共DNS服务器地址:223.5.5.5,223.6.6.6,8.8.8.8,114.114.114.114……

8.1 域名结构

在这里插入图片描述

8.2 DNS记录类型

记录类型说明应用场景
A域名对应ipv4地址常用
AAAA域名对应ipv6地址常用(ipv6)
CNAME记录别名,将域名解析成域名2,网页会跳转到域名2对应的网站CDN、WAF
TXT记录对域名进行标识和说明。TXT 记录常用来做SSL数字证书
签发验证、SPF 记录(反垃圾邮件)
MX记录用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器地址企业邮箱

8.3 dig命令

dig:Domain Information Groper(域信息搜索器)是DNS查询工具

格式:dig 选项 域名 查询类型

在这里插入图片描述

  • 跟踪DNS解析过程:+trace

在这里插入图片描述

9. 思维导图

【金山文档】 思维导图 https://www.kdocs.cn/l/co3I7PtpTYQX

http://www.lryc.cn/news/2393870.html

相关文章:

  • 专场回顾 | 重新定义交互,智能硬件的未来设计
  • 如何把一台电脑作为另外一台电脑的显示器
  • WPS 免登录解锁编辑
  • 【C/C++】线程安全初始化:std::call_once详解
  • 技术分享 | Oracle SQL优化案例一则
  • ​什么是RFID电子标签​
  • 华为手机用的时间长了,提示手机电池性能下降,需要去换电池吗?平时要怎么用能让电池寿命长久一些?
  • BERT***
  • 超级对话2:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之二
  • 在Linux环境里面,Python调用C#写的动态库,如何实现?
  • 【Linux 基础知识系列】第三篇-Linux 基本命令
  • OpenCV CUDA模块直方图计算------生成一组均匀分布的灰度级函数evenLevels()
  • 深度学习常见实验问题与实验技巧
  • 前端面试之Proxy与Reflect
  • uniapp vue3 鸿蒙支持的 HTML5+接口
  • 一张Billing项目的流程图
  • 理想树图书:以科技赋能教育,开启AI时代自主学习新范式
  • 【大模型02】Deepseek使用和prompt工程
  • B端产品经理如何快速完成产品原型设计
  • [Java实战]Spring Boot切面编程实现日志记录(三十六)
  • Apache POI生成的pptx在office中打不开 兼容问题 wps中可以打卡问题 POI显示兼容问题
  • 大学大模型教学:基于NC数据的全球气象可视化解决方案
  • Python学习(2) ----- Python的数据类型及其集合操作
  • 机器学习算法-决策树
  • MediaMtx开源项目学习
  • Linux安装EFK日志分析系统
  • Linux(9)——进程(控制篇——下)
  • E. Melody 【CF1026 (Div. 2)】 (求欧拉路径之Hierholzer算法)
  • @Pushgateway 数据自动清理
  • 粽叶飘香时 山水有相逢