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应用程序开发》第二版,华清远见嵌入式培训中心 编著
- Linux网络编程(未完)
- 《python网络编程基础》笔记(未完待续)
- linux 常用命令(未完)
- linux学习笔记(未完)
- linux 备忘 (未完待续)
- (未完)linux相关网站
- Linux常用命令整理(未完)
- 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 未完
- Linux--网络编程(一)网络介绍
- Linux网络编程(一)
- linux网络编程(socket)
- linux网络编程(笔记)
- 网络编程入门(linux)
- linux网络编程(一)
- linux网络编程(2)
- linux网络编程(转载)
- linux网络编程(一)
- Linux Socket编程(网络)
- Java 实训5 编写一个窗体应用程序模拟交通信号灯
- LeetCode基础-链表-判断链表是否有环
- JAVA第四次作业(2接口练习题)
- 【题目】洛谷P2307 迷宫
- java链表与二叉树
- Linux网络编程(未完)
- 指针和引用的区别
- CCF201403-1
- 文章标题
- 关于支配点(必经过点)的人生经验
- Convert OpenCV (iplImage) to PyQt5 QImage/QPixmap in Python
- Google子公司发布机器人 黑科技不输Atlas!
- 这只阿尔法狗已被得力驯化,请查收
- 挑战野生动物摄影 快无边界vivo Xplay5带你纵情非洲