当前位置:网站首页>网络协议:TCP/IP协议
网络协议:TCP/IP协议
2022-07-26 17:40:00 【林非凡1998】
一.网络协议
如果要理解Socket,要熟悉TCP/IP即传输控制协议/网间协议,定义了主机如何连入因特网,数据如何在它们之间传输的标准。
TCP/IP协议参考模型,把所有的TCP/IP系列协议归类到四个抽象层中:应用层,传输层,网络层,数据链路层,每一抽象层建立在低一层提供的服务上,并且为高一层提供服务。
互联网为什么分层?
层与层之间定好规则(就是接口),每一层做好自己的事,层可以内部演化。
协议:规范,遵守的规则
一共分为几层?5层,下面具体分析一下这5层


实体层
物理连接,光纤/电缆等。传递的是0和1
链接层
规定一下0和1的解读方式。
以太网
- 大概是一组信号当做数据包,成为帧-Head-data
- Head:描述信息(发送者---接收者)
- Data:真实数据
- 数据必须是网卡到网卡的(每个网卡有Mac地址)
- 广播一下,对着局域网的全部网卡都发一遍
互联网是多个局域网组成的。局域网是子网络。
网络层
- 解决不同的计算机,在不同的局域网通讯问题。
- IPV4确定属于哪个子网,独立的IP比较贵的。每个计算机都有一个IP地址:192.168.1.1一共32位的
- 把帧里面data分成2块(Head包括IP地址+长度,data真实数据)
- 帧长度是有限制的,如果超过,会拆成不同的包,每个包都有head和包序号
传输层
- 问题:电脑里面多个程序都使用网络,帧过来,到底给那个程序?得有个东西,告诉去给那个程序。(端口改闪亮登场了....)
- 保证:电脑上的某程序的信息,发送到某个电脑上的某个程序。
- 端口:0~65535,其中0到1023系统用的。保证程序和程序进行交流
- 主机+端口=套件字(Socket),socket其实就是保证分布在不同电脑的程序交互,可以做网络应用程序开发
- UDP协议,把data拆分成head+data(head只放端口)。不保证数据一定会被收到。特点:简单,可靠
- TCP协议,数据的可达性,确保数据不丢失,确认过程。复杂版本的UDP。特点:负载低效,抵消更多资源,可靠。
应用层
http协议举例,说明data数据里面的含义。指定data里面什么格式,什么意义。
二.网络通讯
Supersocket有三大对象:Session,AppServer,Commands
- Session:每个用户的连接,就是一个Session
- AppServer:Socket服务器的实例
- Commands:客户端回发数据的命令
客户端发的信息格式:CommandName+空格-+参数0+空格+参数1+空格+参数N+\r\n
服务端的处理:CommandName命令类来处理
心跳检测机制:
- 用来检测客户端是否掉线,客户端在线,间隔时间内服务器发送一个心跳包,服务器返回应答。
- 如果心跳周期内,没收到,服务器就认为你下线了
边栏推荐
- 凝心聚力,心心向印!印度中资手机企业协会(CMA)正式运营!
- 更安全、更健康、无续航焦虑,魏牌拿铁DHT-PHEV来了
- 【在 Kotlin 中添加条件行为】
- SSM integration - functional module and interface testing
- 云服务器mySQL提示报错
- 开发winform中遇到的一些问题汇总(持续跟新)
- File upload and download test point
- 14. Gradient detection, random initialization, neural network Summary
- [ Kitex 源码解读 ] 服务发现
- Mpc5744p burning to 98% can not continue to download the program
猜你喜欢

立即报名 | 云原生技术交流 Meetup 广州站已开启,8 月 6 号与你相遇!

链表-反转链表

NFT digital collection system development: sold out when online, and netizens "spike" Digital Collections

SSM integration - exception handler and project exception handling scheme

Bulletgraph (bullet diagram, bullet diagram)

Baidu PaddlePaddle easydl x wesken: see how to install the "eye of AI" in bearing quality inspection

If the recommendation effect is not satisfactory, it's better to try to learn the propeller chart

flex布局
![455. Distribute cookies [double pointer ++i, ++j]](/img/8c/cc5361caefceb6a4eb1c2ef8d5dede.png)
455. Distribute cookies [double pointer ++i, ++j]

Redis主从复制,读写分离,哨兵模式
随机推荐
mpc5744p烧录到98%无法继续下载程序
Linear regression -- Taking an arithmetic sequence as an example
How the test team conducts QA specification
Redis持久化RDB/AOF
NFT数字藏品系统开发:上线即售罄,网民“秒杀”数字藏品
J9数字论:如何避免踩雷多头陷阱?
SSM practice day 5
NFT数字藏品开发:数字藏品助力企业发展
Operation: skillfully use MySQL master-slave replication delay to save erroneously deleted data
《圆圈正义》的信念
Have you ever encountered a deadlock problem in MySQL? How did you solve it?
自动化测试工具-Playwright(快速上手)
Summary of some problems encountered in developing WinForm (continuous updating)
Leetcode 0137. number II that appears only once
Pyqt5 rapid development and practice 3.5 menu bar and toolbar
如何组装一个注册中心
455. 分发饼干【双指针 ++i、++j】
OpenGL中的视差贴图的着色器代码
Sudden! Arm stops cooperating with Huawei! How big is the impact on Huawei?
数据安全知识体系