Linux应用开发(七)——Linux网络介绍

一、Internet 介绍

1、Internet 发展史

  • 1957年10月和11月,前苏联先后有两颗"Sputnik"卫星上天。
  • 1958年美国总统艾森豪威尔向美国国会提出建立DARPA (Defense Advanced Research Project Agency),即国防部高级研究计划署,简称ARPA。
  • 1968年6月DARPA提出"资源共享计算机网络" (Resource Sharing Computer Networks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即"阿帕网",是Interne的最早雏形。
  • 早期的ARPAnet使用网络控制协议(Network Control Protocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能
  • 1973年由Kahn和Vinton Cerf两人合作为ARPAnet开发了新的互联协议。
  • 1974年12月两人正式发表第一份TCP协议详细说明,但此协议在有数据包丢失时不能有效的纠正
  • TCP协议分成了两个不同的协议:用来检测网络传输中差错的传输控制协议TCP,专门负责对不同网络进行互联的互联网协议IP,从此,TCP/IP协议诞生
  • 1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议。TCP/IP协议成为Internet中的"世界语"
  • 1991 万维网(www)的发明, 推动了网络的世界化

2、网络的体系结构

  • 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。
  • 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务
  • 网络体系结构即指网络的层次结构和每层所使用协议的集合
  • 两类非常重要的体系结构:OSI与TCP/IP

3、OSI模型

  • OSI模型相关的协议已经很少使用,但模型本身非常通用
  • OSI模型是一个理想化的模型,尚未有完整的实现
  • OSI模型共有七层(下图)

物理层: 就是网卡, 网线

链路层: 网卡驱动 , 发送数据与接收数据

网络层: 路由器和ip地址 , 数据分组与路由

传输层: 保证数据发送的, 少数据要补发, 发错的话, 重发

会话层:理想的模型, 很少有实现

表示层: 理想的模型, 很少有实现

应用层:协议头, samba协议, ssh协议, nfs协议, tftp协议

4、TCP/IP 模型

  • TCP/IP协议是Internet事实上的工业标准。
  • TCP/IP 模型一共有4层
  • 网络接口与物理层 : 网卡与网卡驱动
  • 传输层: TCP 与UDP
  • 应用层: FTP, TFTP,DNS, SMTP, Samba ,SSH

5、TCP/IP与OSI参考模型的对应关系

二、TCP/IP协议

1、TCP/IP协议介绍

TCP/IP协议,传输控制/网际协议(Transfer Control Protocol/Internet Protocol) 又称作网络通讯协议。Internet国际互联网络的基础,RFC793。一组协议,通常称它为TCP/IP协议族。四个层次:网络接口层与物理层 , 网络层、传输层、应用层

2、常用协议

  • TCP(Transport Control Protocol) 传输控制协议
  • IP(Internetworking Protocol)网间协议
  • UDP(User Datagram Protocol)用户数据报协议
  • ICMP(Internet Control Message Protocol)互联网控制信息协议
  • SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
  • SNMP(Simple Network manage Protocol)简单网络管理协议
  • HTTP(Hypertext Transfer Protocol) 超文本传输协议
  • FTP(File Transfer Protocol)文件传输协议
  • ARP(Address Resolution Protocol)地址解析协议

3、TCP/IP协议通信模型

  • 客户方TFP程序: 应用程序 , 一个软件程序
  • TCP协议 : 网络传输的准确性 , 传输控制
  • ip : 路由器端通信的 , ip 地址
  • 以太网驱动 : 网卡的物理地址

4、数据的封装与传递过程

每层通信时都会加上本层的包头

  • 应用层 : 会加上ftp协议的头
  • TCP层 : 会加上TCP层的协议,端口号
  • IP 层 : 会加上源IP和目的IP
  • 以太网层: 加上网卡的MAC地址

5、Linux系统中的TCP/IP结构

计算器分为软件和硬件,硬件: cpu , 内存, 硬盘, 网卡 , 显示器 , 键盘, 鼠标。软件: 操作系统,window和Linux,Linux:用户空间,用户写的软件运行的地址范围,各种应用程序的, 如 FTP , Samba, SSH;内核空间,操作系统运行的地址范围,实现了TCP/IP模型的3层(物理层,网络层, 传输层)。对于用户来说,我们只关心应用层

6、TCP协议

TCP(即传输控制协议):是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。

  • 高可靠通信: TCP,数据无误,数据无丢失,数据无失序,数据无重复到达
  • 不可靠通信 : UDP,没有以上4点的保证

适用情况:适合于对传输质量要求较高,以及传输大量数据的通信。在需要可靠数据传输的场合,金融,,银行, 证券 。QQ,微信等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议,全双工通面向连接的可靠的按序递交的无重复的字节流通信,把TCP理解成2根管道。

7、UDP协议

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。适用情况:

  • 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
  • 在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
  • 适合于广播/组播式通信中。
  • wechat/QQ等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
  • 流媒体、直播等网络多媒体服务中通常采用UDP方式进行实时数据传输

全双工 、无连接、不可靠的数据抱通信

8、UDP和TCP比较

  • 共同点:同为传输层协议
  • 不同点:TCP,有连接,可靠;UDP,无连接,不保证可靠
相关推荐
码农小韩1 天前
Linux应用开发(六)——进程间通信
linux·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用
码农小韩2 天前
Linux应用开发(五)——线程
linux·操作系统·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用
码农小韩9 天前
Linux应用开发(三)——Linux的文件属性与目录
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux应用开发
码农小韩1 个月前
Linux操作系统(六)——软件包管理
linux·操作系统·linux驱动·嵌入式软件开发·linux应用
Zeku2 个月前
10.ROS2-URDF机器人建模-从概念到开发与调试全记录
机器人·ros2·linux驱动开发·linux应用开发
ZeroOne电平浪客3 个月前
欢迎来到英飞凌TC3XX芯片的世界
嵌入式软件开发·汽车电子·英飞凌tc3xx芯片
秋越3 个月前
从工程角度理解嵌入式C语言关键字
c语言·开发语言·嵌入式·嵌入式软件开发·嵌入式c语言·c语言关键字
byte轻骑兵5 个月前
盘点那些常见的嵌入式开发平台(9):仿真与测试工具
测试工具·嵌入式软件开发
Zeku5 个月前
虚拟机网络设置
网络·stm32·freertos·linux驱动开发·linux应用开发