OSI七层模型/TCP/IP四层模型
不管是OSI还是TCP/IP都是一种网络体系架构。计算机网络是一种非常复杂的系统,需要解决的问题且性质各不相同。
1974年美国IBM公司按照分层的方法制定了系统网络体系结构(SNA,System Network Architecture),不久后各个公司也相继推出自己公司的具有不同名称的体系结构。这使同一个公司生产的网络设备能够很容易互联成网,容易一个公司形成垄断,但是网络体系的不同,所以也很难互通。
为解决这个局面,IOS(国际化标准组织)与1977年成立部门开始研究,1979年正式提出“异种互联网标准”,这就是著名的开发系统参考模型OSI。1983年形成开放系统互连基本参考模型的正式文件,即OSI七层模型。

物理层:OSI最低的一层,确保原始数据可在各种物理媒体上传输。
数据单位:字节
主要功能:
负责在物理媒介上传输比特流,定义硬件设备的电气特性、机械特性和传输方式。它确保比特流能够通过介质(如光纤、以太网)准确传输。
1.为数据端设备提供传送的通路:通信的两个数据终端设备连接起来,形成一条通路
2.传输数据:物理层形成合适数据传输需要的实体。传输方式需要满足点到点,一点到多点,串行,并行,半双工,全双工没同步或异步传输的需要。
3.完成物理层的一些管理工作
数据链路层
主要功能:
数据链路层提供点对点的数据传输服务,负责将原始比特流转换为数据帧,并检测和纠正传输中出现的错误。它还控制访问物理媒介的方式,以及数据帧的传输和接收。
1.帧同步:为了使传输发生差错后只将有错的有限数据进行重发,数据链路层将比特率以帧为单位传送。每个帧除了要传送的数据外,还包括校检码,以使接收方能发现传输中的差错。
2.差错控制:一个实用的通信系统必须具备发现这种差错能力,并采取某种措施纠正,这就是差错控制的过程。对差错编码的检查,可以判断一帧在传输过程中是否发生了错误。一旦发现,就会重新传送。
3.流量控制:简单来说就是控制相邻两节点之间数据连路上的流量。
IEEE组织对数据链路层划分为LLC(逻辑链路层)和MAC(介质访问控制层)。

LLC与网络层相接,为不同的MAC子层协议与网络层协议之间提供统一的接口,并提供流量控制 等服务。
MAC与物理层相接,为统一的LLC子层协议和不同的物理层介质之间提供沟通的媒介,并执行与硬 件有关的服务,包括在共享环境中实现资源分配、让通信可以适应不同的传输介质、实现数据 寻址等。
MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有唯一的 一个MAC地址。又被称为物理地址,硬件地址。
MAC地址具有全球唯一性。
MAC地址采用十六进制数表示,六个字节48位。前三位字节由IEEE进行分配,后三个字节则交给各路厂家自行指派给生产适配器。

与之具有关联性的ip地址。
参考第一篇IPv4。
为什么既要给一台设备分配IP地址,又要分配一个MAC地址?
主要原因:
IP地址是根据网络的拓朴结构分配的,MAC地址是根据制造商分配的,若路由 选择建立在设备制造商的基础上,这种方案是不可行的。
当存在两层地址寻址时,设备更灵活,易于移动和维修。
区别:
IP地址的作用是唯一标识网络中的一个节点,可以通过IP地址进行不同网段的 数据访问。
MAC地址的作用是唯一标识一个网卡,可以通过MAC地址进行同网段的数据访问。

Ethernet Ⅱ以太帧:
DMAC:6字节,目的MAC地址,6字节,该字段标识帧的接收者。 ▫
SMAC:6字节,源MAC地址,6字节,该字段标识帧的发送者。
Type:2字节,协议类型。
常见值: ▪ 0x0800:Internet Protocol Version 4 (IPv4) ;
▪ 0x0806:Address Resolution Protocol (ARP)
IEEE 802.3 LLC以太帧:
逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP (Destination Service Access Point)源服务访问点SSAP(Source Service Access Point)和Control字段组成。 ▪
DSAP:1字节,目的服务访问点,若后面类型为IP值设为0x06。服务访问 点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口 号。
SSAP:1字节,源服务访问点,若后面类型为IP值设为0x06。
Ctrl:1字节,该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编 号数据格式。
过渡技术:
ipv4向ipv6过渡的NAT技术,APR(地址解析协议)。前文提及。
APR协议:即(Address Resolution Protocol),根据ip地址获取物理地址的一个TCP/IP协议。
当主机要访问某个主机时,会发送APR广播,这区域内泛洪,目标主机会进行APR响应,这就是工作原理,简单来说就是,这人群里,我大喊张三,张三听见我这喊他,他回应我,我在这里。
APR欺骗;依旧简单来说,就是我在人群里大喊张三,这是互相信任的情况下,但是我喊的张三我不认识,我在人群里喊,张三,你的金币掉了,这时候可能就会有人冒充张三,来领取掉落的金币。这就是APR欺骗。
网络层:
网络层是OSI参考模型中的第三层,介于数据链路层和传输层之间,主要协议为IP协议,ICMP,IGMP,主要工作设备为路由器。路网络层的目的是实现两个端系统之间的数据透明传输,具体功能包括寻址和路由选择,连接建立,保持会话终止等。他提供的服务使传输层不需要了解网络中数据传输和交换技术。
IP是网络层一个非常重要的协议,为计算机网络通讯相互连接进行通信起到关键性作用。IP协议将多个网络连接起来,这源地址和目的地址之间传送数据包,还提供对数据大小的重新组装功能,就是所熟知的IP分片。
IP分片:
IP传输的数据超过了MTU(Maxium Transfer Unit)最大传输单元,以太网帧最大支持1500字节,FDDI最大支出4470字节,当超过了这个上限,就需要对这个数据进行分片。每个被分成较小的报文称为分片,每个分片都有一个IP报文头,分片后的数据IP包头和原始IP包头除分片偏移,MF标志位不同,其他都一样。

IP分片的缺点也很明显,如果一个一个分片丢失,那么整个数据包都会被丢弃,重组过程中会消耗CPU资源,增加网络延迟,同时也可能带来相应的安全隐患,所以一般IP分片一般不用。
IP中有两个重要的版本,IPV4和IPV6。IPV4参考前文,IPV6会单独出一篇。
ICMP:
ICMP(internet control message protocol),控制协议报文,网络测试里非常常用的一个协议,主要ping 和tracert,面向无链接的协议,用于传输出错报告控制信息。当IP数据无法访问目标地址,或者路由器无法安装当前的传输速率转发数据包等情况,就会自动发送ICMP报文。

查看ICMP报文

- type 回显请求(Type=8, Code=0):用于Ping命令,测试目标主机是否可达。
- 回显应答(Type=0, Code=0):响应Ping请求。
- 时间戳请求/应答(Type=13/14):查询或返回时间戳信息。
- 地址掩码请求/应答(Type=17/18):获取子网掩码信息。
差错报告报文:
目的不可达(Type=3):例如网络不可达(Code=0)、主机不可达(Code=1)、端口不可达(Code=3)。
- 源抑制(Type=4):通知源主机降低发送速率。
- 超时(Type=11):例如TTL超时(Code=0)。
- 重定向(Type=5):通知主机更新路由信息。
- 参数问题(Type=12):IP报文头部字段错误。
IGMP:(internet group Manage Protocol),将IP包传给多个主机,Windows 系列采用这个协议,因技术不成熟,被人拿来攻击系统。
传输层
工作于OSI协议的第四层,实现端到端的数据传输。作为OSI中最重要的一层,是唯一负责总体的数据传输和数据控制的一层。传输层提供端到端的交换数据的机制。传输层对会话层等高三层提供可靠的传输服务,对网络层提供可靠的目的地站点。
应用层:为应用程序或用户请求提供各种请求服务。OSI参考模型最高层,也是最靠近用户的一层,为计算机用户、各种应用程序以及网络提供接口,也为用户直接提供各种网络服务。
表示层:数据编码、格式转换、数据加密。提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
会话层:创建、管理和维护会话。接收来自传输层的数据,负责建立、管理和终止表示层实体之间的通信会话,支持它们之间的数据交换。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
TCP/IP参考模型

网络接口层于OSI参考模型中的物理层和数据链路层相对于。
网络层:对于OSI参考模型的第三层网络层,主要解决主机到主机的通信的问题。
传输层:又称运输层。传输层只存在于端开放系统中,介于网络层和应用层之间的一层,是非常重要的一层,OSI中的传输层也起到非常重要的作用。该层定义了两个非常重要的协议TCP和UDP。
TCP:
TCP(Transmission Control Protocol)是一种面向连接的,可靠的,基于字节流的传输层通信协议,由IETF的RFC793定义。不同主机的应用层之间经常需要可靠的,像管道一样的连接,但是IP不能提供这样的流机制,而是提供不可靠的包交换。
报文格式:
+-------------------------------+-------------------------------+ | Source Port | Destination Port | +-------------------------------+-------------------------------+ | Sequence Number | +---------------------------------------------------------------+ | Acknowledgment Number | +-------+-------+-+-+-+-+-+-+-+-+-------------------------------+ | Data | |C|E|U|A|P|R|S|F| | | Offset|Rsved |W|C|R|C|S|S|Y|I| Window | | | |R|E|G|K|H|T|N|N| | +-------+-----------+-+-+-+-+-+-+-------------------------------+ | Checksum | Urgent Pointer | +-------------------------------+-------------------------------+ | Options | +---------------------------------------------------------------+ | data | +---------------------------------------------------------------+

U (urget)紧急处理:当URG的标志位设置为1时,紧急指针才有效,表示优先处理
A(ACK)确认包 ACK=0,表示请求
P(PASH)推送 当PAS=1时,表示请求接受端TCP将报文端立即发送到应用层,而不是缓存。
R(reset)重置 RST=1时,表示TCP出现错误,必须立即释放传输连接,后重建。
S(SYN)同步 也是请求报文。
F(finish)结束 FIN = 1,发送完毕
TCP的建立过程为三次握手,解除时为四次挥手。
三次握手:

四次挥手

UDP:
UDP协议全称用户数据报协议,在网络中与TCP协议一样用于处理数据包,是一种无链接的协议,平常打游戏一把用的就是UDP,UDP只负责发数据发送,发送后就不管了,无法得知是不是安全完整的送达。
特点:
1.不可靠,面向无链接,
2.高效。
3.用于传输对实时性要求高的,比如微信视频电话。
TCP于UDP的对比

应用层;
应用层不管是OSI还是TCP/IP都是最高层,为用户提供各种所需的服务。
常见的服务和端口号和传输方式
FTP(文本文件传输协议)端口号,20/21一个客户端一个访问端 TCP
SSH (安全壳) 22 TCP
Telent(远程登录)23 TCP
SMTP (简单邮件传输协议)25 TCP
DNS(域名系统)53 TCP/UDP
DHCP(动态主机配置协议)67/68 UDP
HTTP(超文本传输协议) 80 TCP
POP3(邮局协议)110 UDP
NTP (网络时间协议)UDP 123
IMAP(互联网消息访问协议)143 TCP
SMNP(简单网络管理协议) 161 UDP
LDAP(轻量目录访问协议)389 TCP/UDP
HTTPS(安全超文本传输协议)443 TCP
SMB(网络文件共享协议)445 TCP
Syslog (系统日志)514 UDP
Mysql (数据库) 3360 TCP
RDP(远程桌面协议)3389 TCP
SIP(会话发起协议) 5060 TCP/UDP
TCP/IP和OSI的不同点和相同点
相同点:
都采用了分层的层次结构概念
都提供面向连接和面向无连接的机制(TCP UDP)
不同点:
一个七层,一个四层
TCP/IP的网络接口层是一个模糊的概念。OSI对其划分为物理层和数据链路层,每一层的功能很详细。甚至在数据链路层划分出一个介质访问子层,解决局域网的共享介质问题。
OSI的设计适用于全网络,但TCP/IP不是。
OSI模型虽然是被广泛认可的一种协议,但是太过完美化,实现起来困难,所以TCP/IP的模型最广泛应用于工业中。
更多推荐


所有评论(0)