网络编程之五层协议

五层协议总共有:物理层,数据链路层,网络层,传输层,应用层

1,物理层:
物理连接介质. 光纤,双绞线等等.
在物理层上所传数据的单位是比特。物理层的任务就是透明地传送比特流。
物理层只发送0101高低电平数据
但是数据应该进行分组,源地址,目标地址. 这些物理层做不了.

2,数据链路层: 简称为链路层,主要就是对数据进行分组,封包:源地址,目标地址.统一使用以太网协议.
规定数据分为两部分:
数据头和数据体
数据头规定,固定18个字节.
数据头部分:
源地址: 6个字节
目标地址: 6个字节
数据类型: 6个字节.
将数据分为组的形式: 一组电信号:数据报,也叫一帧.
data长度=46字节~1500字节,即head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

网卡: mac地址. 就是计算机的唯一标识,计算机出厂就会有网卡,网卡上就有一个mac地址
12位 16进制: 40-8D-5C-93-F1-DE 前六位:厂商编号,后六位:流水线号.

计算机是如何通信的?
计算机通信方式:广播,吼.
村东头老李马上来村委会: 全村人全部都能接收到消息,分析消息,不是找自己的将消息丢弃掉.
理论: 有了mac地址,加上广播的方式,全世界所有的计算机都可以通信了.
实际:广播风暴,效率低,工作量太大.

接下来规定:mac + 广播的形式只能在局域网中实行.

3,网络层: 确定局域网的位置.
协议:IP,ICMP,IGMP,ARP,RARP
寻找对方局域网的位置.
ip + mac + 广播 就能确定世界上任何一个计算机的位置.

4,传输层:负责向两个主机中进程之间的通信提供服务。
(1) TCP:面向连接的,数据传输的单位是报文段,能够提供可靠的交付。
(2) UDP:无连接的,数据传输的单位是用户数据报,不保证提供可靠的交付,只能提供“尽最大努力交付”。
端口协议. 每一个软件都有固定的端口,
0 ~ 65535 0~1023系统占用.
端口:确定软件的位置.
端口 + ip + mac + 广播 就能确定世界上任何一个计算机的软件的位置.

5,应用层: 每个软件对于数据有不同的自定制协议.
直接为用户的应用进程提供服务。
在因特网中的应用层协议很多,如HTTP协议,SMTP协议,FTP协议,DNS,POP3,SNMP,Telnet等等。

看图理解一下:


原文地址:https://www.cnblogs.com/NoteBook3013/p/10395804.html