Linux网络编程_01_网络基础

Linux网络编程总目录(点击下面链接即可到达对应章节)

Linux网络编程_01_网络基础
Linux网络编程_02_socket套接字
Linux网络编程_03_应用层HTTP协议
Linux网络编程_04_传输层UDP和TCP协议
Linux网络编程_05_网络层IP协议
Linux网络编程_06_数据链路层MAC帧协议
Linux网络编程_07_多路转接

一. TCP/IP五层模型

应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等

传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机

网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层

数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层

物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆、光纤, 现在的wififi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层

一般认为: 一台主机, 它的操作系统内核实现了从传输层到物理层的内容;一台路由器, 它实现了从网络层到物理层;一台交换机, 它实现了从数据链路层到物理层;集线器, 它只实现了物理层;

在这里插入图片描述

二. 网络传输流程

2.1 数据包封装和分用

  1. 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)

  2. 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图

  3. 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长, 上层协议是什么等信息

  4. 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理,称为分用

在这里插入图片描述

2.2 传输

2.2.1 同网段传输

在这里插入图片描述

2.2.2 跨网段传输

在这里插入图片描述

三. 网络中的地址管理

3.1 IP地址

  1. IP地址是在IP协议中, 用来标识网络中不同主机的地址

  2. IPv4协议的IP地址是一个4字节, 32位的整数,IPv6协议的IP是一个16字节,128位的整数

  3. 我们通常使用 “点分十进制” 的字符串表示IPv4的IP地址, 例如 192.168.0.1,用点分割的每一个数字表示一个字节, 范围是 0 - 255

  4. Pv6地址通常分为8组,4个十六进制数为一组,每组之间用冒号分隔,例如1a2b:1a2b:fe21:1a2b:0000:0000:0000:0000

3.2 MAC地址

MAC地址用来识别数据链路层中相连的节点,长度为48位, 即6个字节。一般用16进制数字加上冒号的形式来表示,例如:08:00:27:03:fb:19 。MAC地址在网卡出厂时就确定了, 不能修改。

下一章节点击我直达 --> Linux网络编程_02_socket套接字

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柿子__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值