网络通信原理
- 通过物理介质连接
- 找到对方计算机网络位置
- 通过统一的互联网协议进行数据收发
osi七层协议
互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。
物理层
物理层指的是网线、光纤等连接介质,基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层
定义电信号的分组方式,规定电信号多少位一组,每组的意思
以太网协议
以太网协议是一个统一的分组方式
以太网协议规定一组数据构成一个数据报,叫做帧,每一帧分为报头和数据两部分
报头head:
- 源地址 6个字节
- 目标地址 6个字节
- 数据类型 6个字节
- 共18个字节
数据data:最短46字节,最多1500字节
数据包的具体内容:
head长度 + data长度 = 最短64字节,最长1518字节,如果数据超出最大限制就分片发送
mac地址
每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址
广播
在具有mac地址的情况下,同一网络内两台计算机就可以进行通信了
网络层
世界范围的互联网由一个个彼此隔离的局域网组成。如果通信全部采用广播方式,那么一台机器发送的数据全世界都可以接受到。这已经不是效率的问题了,而是一种灾难。
网络层就是引入一套地址用来区分不同的广播域(子网),即网络地址
IP协议
ip协议就是规定网络地址的协议。ip协议定义的地址叫ip地址,格式采用四段十进制数。 地址范围是0.0.0.0~255.255.255.255
作用:
- 为每一台计算机分配IP地址。
- 确定哪些地址同一个子网络。
子网掩码
通过子网掩码就可以判断任意两个ip地址是否处于同一个子网下。
子网掩码形式上等同于IP地址,是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。
将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
子网掩码分类
- A类:255.0.0.0
- B类:255.255.0.0
- C类:255.255.255.0(C类一个网段最多承载254个ip地址,0号和255号被占用)
ip数据包
ip数据包也分为head和data部分,位于以太网数据包的data部分
head:长度为20~60
data:最长为65151字节
ARP协议
通过ip地址获取对方的mac地址
以广播的方式在发送端所处的自网内传输,所有主机接收后拆开包,发现目标ip为自己的,就响应,返回自己的mac
源mac 目标mac 源ip 目标ip 数据
传输层
通络通信是程序与程序间的通信,通过ip和mac可以找到目标的电脑,而标识这台电脑的应用程序的是端口。
传输层建立端口与端口间的通信,端口范围是0~65535,其中~1023由系统占用。
TCP协议
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
特点:
- 可靠传输
- 传输字节流
- 面向连接的流式协议
- 传输效率低(需要先建立连接)
tcp的三次握手和四次挥手
UDP协议
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
特点:
- 不可靠传输
- 面向报文(数据包)无连接的服务
- 传输效率高(不用担心对方是否接受到数据)
应用层
用户使用的都是应用程序,均工作于应用层,应用层规定了程序的数据格式
例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
标签:协议,字节,ip,网络协议,地址,mac,数据包 来源: https://blog.csdn.net/wy121221612/article/details/101476047
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。