参考:https://www.nowcoder.com/discuss/1937
每一层的协议如下:
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit)
数据链路层:将比特组装成帧和点到点的传递(帧Frame)
网络层:负责数据包从源到宿的传递和网际互连(包PackeT)
传输层:提供端到端的可靠报文传递和错误恢复(段Segment)
会话层:建立、管理和终止会话(会话协议数据单元SPDU)
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU)
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)
IP地址的分类
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255); 一字节网络,三字节主机
B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);两字节网络,一字节主机
C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);三字节网络,一字节主机
10.0.0.0—10.255.255.255, 172.16.0.0—172.31.255.255, 192.168.0.0—192.168.255.255。(Internet上保留地址用于内部)
1.TCP提供面向连接的服务,不提供广播或多播服务。
2.常见服务及对应额端口号: FTP:21 Telnet:23 SMTP:25 DNS:53 TFTP:69 HTTP:80
3.UDP协议:
(1)UDP是无连接的。发送数据之前不需要建立连接,因此减少了开销和发送数据之前的延迟。
(2)UDP不保证可靠交付。因此主机不需要维持复杂的连接状态表。
(3)UDP是面向报文的。应用层交给UDP多长的报文,UDP既不合并,也不拆分,照样发送,一次发送一个报文,如果报文太长,UDP把它交给ip层后,ip层在传送时可能就要进行分割,这会降低ip层的效率。 (4)UDP没有拥塞控制。因此网络出现的拥塞不会使源主机的发送速率降低。很多实时应用(如ip电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络发生拥塞时丢失一些数据,但却不允许数据有太大的延迟。UDP正好适合这种要求。
(5)UDP支持一对一,一对多,多对一,多对多的交互通信。
(6)UDP首部开销小,只有8个字节,比TCP的20个字节的首部要短。
4.TCP协议
(1)TCP是面向连接的。应用程序在使用TCP协议之前必须先建立TCP连接。在传输数据完毕后,必须释放已经建立的TCP连接
(2)TCP提供可靠交付。通过TCP连接传送的数据,无差错,不丢失,不重复,并且按次序到达。
(3)TCP是面向字节流的。TCP把应用程序交下来的数据看成仅仅是一连串无结构的字节流。TCP不保证接收方应用程序所接收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系(数据块数量可能不一样,数据块大小也可能不一样)。但接收方应用程序收到的字节流必须和发送方应用程序发出的字节流完全一样。
(4)TCP只支持一对一的交互通信。
(5)TCP提供全双工通信。TCP允许通信双方的应用程序在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。在发送时,应用程序再把数据传送给TCP的缓存后,就可以做自己的事情,而TCP在合适的时候把数据发送出去。在接收时,TCP把收到的数据放入缓存,上层的应用程序在合适的时候读取缓存中的数据。