Linux网络编程(未完)

来源:互联网 发布:qq微信哪个有价值知乎 编辑:程序博客网 时间:2024/06/01 23:45

1.1:OSI参考模型及TCP/IP参考模型

想必大家都听过这两个名词,首先是OSI模型,OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型。该体系结构标准定义了网络互连的七层框架(物理层数据链路层网络层传输层会话层表示层应用层),即ISO开放系统互连参考模型。在这一框架下进一步详细规定了每一层的功能,以实现开放系统环境中的互连性、互操作性和应用的可移植性。

因为其太过于复杂,所以后面改成了TCP/IP模型。

下面是两者的关系图,想必很多人都看过,很重要的一个图,一定要记住,一定要记住,记不住....就算了,熟悉就好。

(图片来自于某度)(ps,网际层又被称为网络层)

这里需要对TCP/IP的4层模型进行简要介绍:

网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是,数据帧是独立的网络信息传输单元。

网络层:负责将数据帧封装成IP数据包,并运行必要的路由算法。

传输层:负责端对端之间的通信会话连接与建立,传输协议的选择根据数据传输方式而定

应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。(我在这里解释一个啥叫端口号,因为一个系统里面,有很多的程序,有很多的程序都要用到网络,但是计算机怎么区别呢,就是通过这个端口号。)



1.2:tcp/ip协议族


一定要记住ipv4和ipv6的所在层,其实不用特意去记忆,有方法的记忆,是非常好的,记住每一个协议的作用就可以了。

比如最底层有ARP,RARP,MPLS(图中没有标出,但是读者应该知道,这个图也是很常见,很出名的。)

其中ARP用于获得同一物理网络中的硬件主机地址。等等。

其中有两个协议值得分辨,那就是TCP和UDP

1.2.1:tcp

因为TCP的上一层就是应用层,因此,TCP数据传输实现了一个应用程序道另一个应用程序的数据传递,而应用程序通过编程调用TCP并使用TCP服务,提供需要准备发送的数据,用来区分接收数据应用的目的地址和端口号。

TCP三次握手协议

参考书籍《嵌入式Linux应用程序开发》第二版,华清远见嵌入式培训中心 编著

原创粉丝点击