Linux网络编程-OSI七层模型和TCP/IP模型及对应协议详解

114 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

目录

一、网络模型介绍(OSI七层模型、TCP/IP五层模型)

1.应用层

2.表示层

3.会话层

4.传输层

5.网络层

6.数据链路层

7.物理层

二、网络模型中网络协议

1.应用层协议:

2.传输层协议:

3.网洛层协议:

三、推荐学习书籍


一、网络模型介绍(OSI七层模型、TCP/IP五层模型)

OSI定义了网络互连的七层框架,分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

TCP/IP五层模型是把上三层都归为应用层,其原理还是跟OSI七层一样。

1.应用层

        与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,NFS,SMTP等。

2.表示层

        这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。

3.会话层

        它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。

4.传输层

        这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。

5.网络层

        这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。

6.数据链路层

        它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。

数据链路层:是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路 。
物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。
数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路。从数据发送点到数据接收点(点到点 point to point)所经过的传输途径。
当采用复用技术时,一条物理链路上可以有多条数据链路。

7.物理层

        OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。

二、网络模型中网络协议

1.应用层协议

FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。

2.传输层协议

TCP协议(传输控制,数据流,数据必达无丢失,类似打电话)、UDP协议(无连接数据报,类似短信,数据前有udp头就说明处理过了。源端口,目的端口,长度,检验和。交给网络后再给个IP头)。

3.网洛层协议

        IP协议、ICMP协议、ARP协议(地址解析)、RARP协议(逆地址解析)、IGMP协议

三、推荐学习书籍

        搞Linux网络编程的,想学TCP/IP的,一定要看的六本书。