目录
TCP/IP协议介绍
协议是什么,有什么作用?
协议,⽹络协议的简称,⽹络协议是⽹络通信(即⽹络数据传输)经过的所有⽹络设备都必须共同遵从的⼀组约定、规则。如怎么样建⽴连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能 相互通信交流。协议(protocol)最终体现为在⽹络上传输的数据包的格式。网络协议对于 实现网络通信的互操作性、标准化、数据封装、路由和寻址、错误检测和恢复、流量控制以及安全性 等方面都起着至关重要的作用
网络协议为什么要分层
一整个协议太庞大,不利于学习和维护,拆分出来的协议又太多了,就引入协议分层,只有相邻层次之间才可以沟通,不能跨层沟通,好处就是
1) 上层协议直接用下层协议即可,不需要了解下层协议的细节(相当于两个人打电话,直接用对应的电话就好,电话内部的怎么接收信号,转换信号怎么传播怎么解码,上层人不需要知道,使用接口就行)
2) 某一层协议替换之后,对其他层没有影响(换个电话用用)
TCP/IP五层网络协议每层的作用
- 1. 应用层 (Application Layer)
功能:定义了应用程序之间通信的协议和方式。例如,HTTP用于网页浏览,SMTP用于电子邮件发送,FTP用于文件传输等。
关注传输的数据在应用程序中如何使用,如数据的表示、加密、压缩等。
- 2. 传输层 (Transport Layer)
功能:提供端到端的通信服务,确保数据包的可靠传输或提供无连接的不可靠服务。
关注通信的起点和终点。主要协议包括TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠的数据传输服务,UDP提供不可靠的数据传输服务。
- 3. 网络层 (Network Layer)
功能:负责数据包的路由和转发,将数据从源地址传输到目的地址。
关注通信中的路线规划。主要协议是IP(互联网协议),它定义了数据包的格式、地址和路由规则。此外,还包括ICMP(Internet控制消息协议)、IGMP(Internet组管理协议)等辅助协议。
- 4. 数据链路层 (Data Link Layer)
功能:在相邻节点之间无差错的传输数据帧,并负责帧的封装和解封装、差错检测等。
关注相邻节点之间的通信细节。该层定义了如何访问传输介质(如局域网、广域网等),以及如何将数据封装成帧进行传输。主要协议包括以太网、令牌环、PPP(点对点协议)等。
- 5. 物理层 (Physical Layer)(硬件层面不重点介绍)
功能:负责传输比特流,是网络通信的基础设施。
关注网络通信的物理连接,包括电缆规格、电压级别、接口类型等。该层定义了数据传输的电气、机械和定时接口等特性,确保比特流在物理介质上的正确传输。
应⽤层
DNS的作用及原理
DNS是互联网上的域名解析系统,它建立了一个分布式数据库,将人们易于记忆的域名映射到计算机易于识别的IP地址。这样用户就可以通过输入域名来访问互联网资源,而无需记住复杂的IP地址。
在浏览器中键入
www.microsoft.com
这个域名, DNS系统会将www.microsoft.com
这个域名解析为相应的IP地址207.46.230.229
DNS工作流程
- 用户请求:当用户在浏览器中输入一个域名时,计算机会向本地域名服务器(Local DNS Server)发送一个域名解析请求。
- 本地查询:本地域名服务器首先在其缓存中查找该域名的解析记录。如果找到,则直接返回IP地址给用户;否则,继续下一步。
- 逐级查询:本地域名服务器会向根域名服务器(Root DNS Server)查询,根域名服务器会返回顶级域名服务器(TLD Server)的地址。接着,本地域名服务器向顶级域名服务器查询,顶级域名服务器会返回权威域名服务器(Authoritative DNS Server)的地址。最后,权威域名服务器会返回相应的IP地址。
- 结果返回:本地域名服务器将解析到的IP地址返回给用户,并将该结果保存在缓存中,以便后续使用。
传输层(TCP协议)
介绍TCP协议段格式
![]()
- 源端口号(16位):用于标识发送方应用程序的端口号,表示数据是从哪个进程来。
- 目的端口号(16位):用于标识接收方应用程序的端口号,表示数据到哪个进程去。
- 序号(32位):用于标识发送方发送的数据字节所占的序列号,表示本报文段所发送数据的第一个字节的编号。
- 确认序号(32位):用于确认接收方已经收到的数据字节的序列号,即接收方期望收到发送方下一个报文段的第一个字节数据的编号。
- 首部长度(4位):用来指明TCP报文段首部的长度,以4字节为单位。最大为60字节,最小为20字节。通过这个字段可以确定TCP报头中是否包含选项字段。
- 保留(6位):保留的6位用于将来的功能扩展,目前必须全部为0。
- 控制位(6位):用于控制TCP报文段的传输状态和控制信息,包括:
URG(紧急指针有效位):告知接收方此报文段中有紧急数据需要处理。
ACK(确认序号有效位):表示确认序号字段中的数据有效。
PSH(推送位):告知接收方应立即将数据交给应用程序,而不是等待缓冲区填满。
RST(复位位):用于重置连接。
SYN(同步位):用于建立连接。
FIN(结束位):用于终止连接。
- 窗口大小(16位):指明发送方的接收窗口大小,用于流量控制。
- 校验和(16位):用于检验TCP报文段是否在传输过程中发生错误。发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值,如果两个值不匹配,则认为数据有问题。
- 紧急指针(16位):仅当URG标志位被设置时有效,表示紧急数据的末尾位置。
- 选项(可变长度):用于提供更多的可选功能,如MSS、时间戳等。这些可选字段可以用于实现拥塞控制、数据加密、性能优化等功能。
理解端⼝号的概念
端口号标识了主机上通信的不同应用程序
- 0 - 1023: 知名端⼝号, HTTP, FTP, SSH等这些⼴为使⽤的应⽤层协议, 他们的端⼝号都是固定的.