1.基础知识

协议

协议,如果换成C语言来描述,那就是一个struct结构体,有很多函数可以对结构体(协议)进行解读;

底层的协议,可以为其上层协议服务,是指底层的结构体中的数据域,就是上层的某个结构体(协议)的对象;

数据链路层上传输是2型以太网帧,你可以把帧理解为一个struct frame结构体;

struct frame {
  char destination[6]; // 目标网卡地址
  char source[6];      // 源网卡地址
  short protocol;      // 承载的协议,即 data 域是个什么协议
  char *data;          // 数据域
}

例如,struct frame承载了ip协议,而ip协议又承载了tcp协议,tcp协议又承载了ftp协议;

struct frame {
   //...
   struct ip *data;
}

struct ip {
  //...
  struct tcp *data;
}

struct tcp {
  //...
  struct ftp *data;
}

网络协议分层

有个ISO/OSI七层协议模型,TCP/IP协议簇也有个四层协议,网络接口层(LLC、MAC),IP层,传输层和应用层;

-------------------------------------------

网络接口层应该对应到七层协议中的二层,而一层一般是物理层;IP层对应到三层协议,传输层对应到四层协议,应用层对应到五、六、七层;

网络接口层传输的数据是“帧”结构,不同的网络传输的帧结构也不大一样;常见的以太网中,用的是2型以太网帧;

网络接口层的目标就是把帧送到目标网卡上;

对于在网络接口层(或者说是在七层协议中的第二层),都是使用二层交换机这种设备来进行转发的;换句话说,交换机只能识别“帧”,它能从网线上的2进制数据中的提取出“”来;

网络接口层,交换机是根据帧中包含的MAC地址将数据转发到目标机器的,因为交换机的内存里保存了一张<MAC,端口>映射表;

----------------------------------

IP层,也叫网络层,这一层传输的数据叫packet,中文叫数据包,或者叫数据报;

这一层最主要的目的是,根据IP地址将数据报发送到对应的网络;

也就是说三层最主要的功能就是路由,主要由路由器这种设备来完成这个工作;路由器,它只认识 IP数据报,它可以根据IP数据报中的IP地址把IP数据包从某个端口转发出去;

当然除了路由之外,三层也有拥塞控制啊等等功能;

-----------------------------------

传输层,传输的数据叫segment,中文叫数据段,所以你会经常听到什么fin段,syn段,ack段什么的;

这一层最主要的功能就是根据端口号把数据段送到目标进程;当然了,四层的功能远远不止是这个,特别是对于 tcp 来说;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值