网络数据传送原理与机制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络数据传送原理与机制相关的知识,希望对你有一定的参考价值。
初识网络数据传送原理与机制,做了点小小笔记,记录每一天!
-------------------------------------------
网卡:
每一个网卡都有一个最大的传输速率
1: 接入互联网数据的物理设备,注意网卡的带宽。每秒传送的数据;
2: 互联网数据的最小单位是 bit,而不是 Byte;
3: 数据传输与网线等有关系,需要同级别网线配合;
4: 交换机最好使用一个牌子, 不要混合使用;
带宽:
1: 局域网带宽: 局域网链路内最大可以传输数据的速度;
2: 公网带宽: 广域网内最大可以传输的数据的速度;
端口:
80 端口 http 协议使用的, 443 端口 https 使用的
1: 网络传送数据的时,按照端口来进行数据包分类;
只要某端口不被使用 就能使用它,如果有在使用,会造成冲突,用不了!
1):端口的取值范围在[1, 65535];
2):[1, 1023]系统保留端口;
3):[1024,5000] BSD 临时端口; 用户使用
4):[5001-65535], BSD 服务器(非特权)端口; 用户使用
2: 哪个数据包属于哪个端口的,根据端口分类;
1)所以应用程序通过网络收发数据的时候,一定会对应一个端口; (根据 IP + Port 来收发数据包)
Socket 套接字:
每个 socket 都有自己的 IP 与 Port 和 对方的 IP 与 Port
1: 对于建立起的网络连接,操作系统给一个唯一的标识这个连接的句柄----我们叫做 Socket 与 套接字
2: Socket两种类型:
(1) TCP Socket, 每发一个数据包,收方会向发送方返回一个 ACK。这样发方会再发下一个数据包,
如果没有返回ACK,又没有收到断掉链接的事件,会继续发送刚才的包,直到对方返回ACK;
TCP 精准、可靠、速度慢
千万不要怀疑 TCP
(2) UDP Socket 每发送一个数据包,只要发出去了,就不管,继续发下一个,不管对方有没有收到这个包;
UDP 不精准、不可靠、速度快
千万不要相信 UDP
TCP 与 UDP 的比较:
1: TCP 是可靠的网络传送协议;
2: UDP 是快速的网络传送协议;
3: 游戏中一般采用 TCP。
4: UDP 可以在特殊的时候使用;
基于 TCP 的网络数据传输:
建立连接:
1: 服务器会有个监听端口
2: 客服端向服务器(IP 地址 + 端口)发送连接请求数据包;
3: 网卡会将这个连接请求的数据包,分发给这个监听端口;
4: 根据连接请求里面客服端的 IP 地址与端口,服务器程序会为它创建一个新的端口,
5: 端口被指定为和客服端这个 IP 地址 + 端口来进行数据通讯。
6: 连接成功后,就会把客户端创建的 Socket 与服务器创建的 Socket 形成我们的数据通道;
收数据:
Poll 轮询 模型;(客户端一般用 Poll 模型)
每隔一段时间去轮询,直到找到一个完整的包(应用层的包), 就能做相应的动作
Event 事件通知模型; (服务器 一般用 Event 模型)
在 Socket 注册一个回调函数, 等有事件发生时调用处理
发数据:
应用层直接发送数据,协议栈底层会将我们的数据包拆分成合适的小包,然后打上 TCP 协议的
数据头,使用 TCP 协议传送给目的地, 对于目的地而言,它可能不是一次性的收到应用层这么多
数据, 而是分批次的收到,(用户编程的时候一定要特别的小心);
到此结束咯!
方便他人,亦是方便自己!
以上是关于网络数据传送原理与机制的主要内容,如果未能解决你的问题,请参考以下文章