OSI
OSI是Open System Interconnect的缩写,意为开放式系统互联 定义了网络的结构
遵循原则:
1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。(每一层可能有不同的协议,但是他们需要完成的功能是一致的)
2、同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。
3、七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
4、不同节点的同等层按照协议实现对等层之间的通信。
会话层上面的东西全部合并成应用层就是五层模型,然后在这个基础上把数据链路层还有物理层都认为是网络接口层就是四层模型
五层模型基本上是最常考的!!
物理层
物理层实现了数据以二进制形式在物理媒体上传输数据,例如以多少赫兹的频率的形式传输
- 协议:数字用户线路(Digital Subscriber Line,缩写:DSL)、综合业务数字网(Integrated Services Digital Network,ISDN)是一个数字电话网络国际标准
- 设备:网卡、光纤、CAT-5线、RJ-45接头、集线器有整波作用、Repeater加强信号、串口、并口
数据链路层
第二层提供无差错帧传送,在第二层上的数据,我们叫Frame
- 协议:ARP
- 设备:
- 桥接器(将网络的多个网段在数据链路层)
网桥能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的数据帧转发给相连的另一个网段
- 桥接器(将网络的多个网段在数据链路层)
网络层
在第三层上的数据叫Packet
- 协议;IP(网络的构建需要IP地址)
- 设备:路由器、三层交换机(设计到局域网中ip的分配)
运输层
第四层的数据叫Segment
SOCKT(套接字)
传输层实现端到端的通信,因此,每一个传输层连接有两个端点。那么,传输层连接的端点是什么呢?不是主机,不是主机的IP地址,不是应用进程。传输层连接的端点叫做套接字(socket),如果IP地址是210.37.145.1,而端口号是23,那么得到SOCKET就是(210.37.145.1:23)。
(Socket类似窗口的地址,你通过ip找到了主机,但是里面有很多窗口,每个窗口对应一个程序,你的端口让让你找到了窗口,找到了需要数据的窗口)
TCP
TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;
UDP
UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
因此UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。
TCP和UDP区别
知不难理解为何采用TCP传输协议的MSN比采用UDP的QQ传输文件慢了。
但并不能说QQ的通信是不安全的,因为程序员可以手动对UDP的数据收发进行验证,比如发送方对每个数据包进行编号然后由接收方进行验证啊什么的。
即使是这样,UDP因为在底层协议的封装上没有采用类似TCP的“三次握手”而实现了TCP所无法达到的传输效率。
应用层
协议:比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。
HTTP
严格意义上来说,HTTP是封装在TCP Segment里面的协议。这地方可以参考RFC相关的文档