OSI网络参考模型
文章目录
7.应用层 (程序员)
对应用程序提供接口。
作用
网页浏览 (ie,google,firefox,360 IE) http 实现网页文本信息传递
文件传输 ftp (crt,xshell,mobax) 实现文件的传输
邮件收发 smtp/pop3(out look)实现网页文本信息传递
6.表示层 (程序员)
进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。
作用
window------linux(跨平台交流)
5.会话层 (程序员)
在通信双方之间建立、管理和终止会话(windows,linux)
作用
QQ和微信之间进行隔离,三个浏览器进行同一进程,进程进行隔离
4.传输层
建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。
3.网络层
定义逻辑地址;实现数据从源到目的地的转发
作用
实现网络设备的编址,利用编址实现报文的转发sip 192.168.1.2 dip 172.16.1.1
2.数据链路层
将分组数据封装成帧;在数据链路上实现数据的点到点、或点到多点方式的直接通信;差错检测。
网络层通过ip地址定义一个端到端通信过程
sip 1.1.1.1
dip 4.4.4.4
链路层负责在链路上将网络层数据封装成数据帧在链路上实现传递
1.物理层
在媒介上传输比特流;提供机械的和电气的规约。
物理层将数据帧转化成电子信号《比特流,无线电,光信号),在物理介质上进行传输
TCP/IP参考模型
TCP/IP常见协议
制定标准化的组织
应用层
应用层数据称为PDU
传输层
端口号,表明访问的意图
源端口出现提高ip地址利用率,能够识别和区分更多的TCP/UDP会话
应用层和传输层
应用层协议在传输层需要定义一个端口用于识别。
端口号取值范围0~65535(16个bit,2^16)
1bit=0/1
2bit=00,01,11,10
知名端口与未知端口
知名端口 0-1023 分配给应用层协议使用,通常作为目标端口
未知端口 1024-65535 通常作为源端口,随机分配
TCP/UDP特点
面向连接欸,可靠 TCP 点到点(拜年打电话,正式传数据前,确认你存在)
无连接 UDP 点到多点(直接到你家拜年,不管你存在不存在)
应用传输需求
我希望可靠的传输 TCP 数据传输 单播 三次握手
我希望高效的传输 ,可靠性不高 UDP (实时通信,语音,视频)单播,组播,广播
分层模型(OSI)
数据封装(帧怎么来的)
最后以bit流转换传输出去
TCP/IP网络模型,数据是以顿为单位进行bit流的转换的。
封装流程
应用层的PDU被封装TCP头部或者UDP头部
TCP封装和UDP封装是应用层协议开发时就被确定了,大概确认逻辑
需要可靠传递,非实时的数据业务,通常用TCP,例如: ftp,smtp,http,telnet,ssh,https…
需要高效,实时,多点传输的数据业务,通常会用UDP,例如,DHCP,TFTP…
有些协议完成不同任务时,TCP和UDP可以一起用,比如 DNS ,如果用于用户的域名解析则用UDP,如果用于DNS主辅同步则用TCP.
数据分为四段
FCS|PDU|TCP/UDP|IP|ETH
TCP长度(20字节)
UDP长度(8字节)
根据5元组来区分不同的TCP/UDP会话
SIP+DIP+TCP+SPORT+DPORT
1.1.1.1 2.2.2.2 TCP 1024 53(DNS)
SIP+DIP+UDP+SPORT+DPORT
1.1.1.1 2.2.2.2 UDP 1025 53 (DNS)
TCP协议标志位的意义
6个标志位:
URG紧急指针,告诉接收TCP模块紧要指针域指着紧要数据
ACK 置1时表示确认号为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。)
PSH置1时请求的数据段在接收方得到后就可直接送到应用程序,e传送。
RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误
SYN 置1时用来发起一个连接
FIN置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了
其中URG不能和PSH标志位同时使用
URG为紧急数据标志,如果URG为1,表示本数据包中包含紧急数据。此时紧急数据指
针表示的值有效,它表示在紧急数据之后的第一个字节的偏移值(即紧急数据的总长
)
ACK为确认标志位。如果ACK为1,表示数据包中的确认号有效。
TCP和UDP-端口号
客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定
源端口号一般为系统中未使用的,且大于1023;
目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80
三次握手
sip 1.1.1.1 dip 2.2.2.2 tcp sport x dport 23 seg num = M ack num = 0 syn = 1 ack = 0(第一次握手)
sip 2.2.2.2 dip 1.1.1.1 tcp sport 23 dport x num = N ack num =M+1 syn = 1 ack = 1(第二次握手)
sip 1.1.1.1 dip 2.2.2.2 tcp sport x dport 23 seg = M+1 ack num = N+1 syn = 0 ack =1
sip 1.1.1.1 dip 2.2.2.2 tcp sport x dport 23 seg = M+1 ack num = N+1 syn = 0 ack =1 pdu(1G数据分成数据片(PDU)127tye )数据有没有收到
sip 2.2.2.2 sip 1.1.1.1 tcp sport 23 dport x seq = N+1 ack num = M+1+pdu
sip 1.1.1.1 dip 2.2.2.2 tcp sport x dport x seq num = M+1+127 ack = N+1+378 syn = 0 ack = 1 pdu (xxx byte)
ack num = 上一个报文的seq num + pdu
seq num = 上一个报文的ack num
三次握手两大意义
- 协商初始序列号和确认号
- 彼此协商确认能力
TCP的序列号与确认序列号
TCP滑动窗口机制
TCP的关闭-四次挥手
当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源
载荷24/12
UDP
网络层
传输层负责建立主机之间进程与进程之间的连接,
而网络层则负责数据从一台主机到另外一台主机之间的传递。
网络层的PDU被称为Packet (包)
二层三层区别
二层(数据链路层)转发:基于数据帧头执行转发决策mac
三层(网络层):基于数据包头(基于DIP)执行转发决策IP
数据链路层:
数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame()。
以太网(Ethernet)是最常见的数据链路层协议
网络层与链路层
网络层是逻辑层,所以标准上统一唯一
链路层是和物理层相关的逻辑层
铜,光纤,串行链路
以太网与MAC地址
以太网
组件以太网的2种经典设备:HUB(集线器),交换机
集线器:hub,链路结构是总线型
以太网是一种广播式数据链路层协议,支持多点接入
个人电脑的网络接口遵循的就是以太网标准
一般情况下,一个广播域对应着一个IP网段。
hub半双工 HUB组网,总线型,为了避免冲突,设备网卡需要工作在半双工的状态。
交换机全双工 矩阵型,不存在冲突,设备网卡可以工作全双工状态。
hub和switch都不隔离广播域,形成广播域
交换机可以隔离冲突域,一个端口就是一个冲突域。
hub 不可以隔离冲突域,所有端口都在一个冲突域内,也在一个广播域内
MAC地址
身份证 IP
学号 mac地址
MAC(Media Access Control)地址在网络中唯一标识一个网卡,每
个网卡都需要且会有唯一的一个MAC地址。
MAC用于在一个IP网段内,寻址找到具体的物理设备
工作在数据链路层的设备。例如以太网交换机,会维护一张
MAC地址表,用于指导数据顿转发
点到点
PPP/HDLC协议:只允许存在两个接口,不需要定义接口
多点需要定义
地址解析协议(ARP)
MAC 地址特点:
全球唯一,本地链路有效,仅在链路上标识不同的以太网接口。
来实现链路上的通信,不能定义跨链路的通信
IP 地址特点全球唯一,
全局有效,不仅可以定义链路上的通信,也能定义跨链路的通信
当本地主机ARP缓存不存在目的主机IP对应MAC地址时,会主动发送ARP请求报文
格式
eth
smac ff-ff-ff-ff-ff--ff-ff(广播MAC地址)即ARP请求以广播的形式发送。
arp request
sender ip 1.1.1.1
sender mac pc1
target ip 1.1.1.2
target mac 00-00-00-00-00-00 (未知MAC地址)
/image-20240404211504092.png" alt=“image-20240404211504092” style=“zoom:67%;” />