当前位置:网站首页>网络协议: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命令类来处理
心跳检测机制:
- 用来检测客户端是否掉线,客户端在线,间隔时间内服务器发送一个心跳包,服务器返回应答。
- 如果心跳周期内,没收到,服务器就认为你下线了
边栏推荐
- SSM整合-功能模块和接口测试
- Redis主从复制,读写分离,哨兵模式
- The faith of circle justice
- Summary of some problems encountered in developing WinForm (continuous updating)
- ALV screen input option learning
- 被控专利授权费过高!美法院判决高通违反反垄断法:高通股价大跌10.86%!
- How about the employment prospects of Russian translation? How to do a good job of Russian translation
- Real passwords do not match during synchronization
- ssm练习第三天_分页助手_安全框架
- Accused of excessive patent licensing fees! The U.S. Court ruled that Qualcomm violated the antitrust law: Qualcomm's share price fell 10.86%!
猜你喜欢
随机推荐
Data warehouse: fact table of detailed dimensional modeling
Nailing third-party service provider application ISV application development and listing tutorial
更安全、更健康、无续航焦虑,魏牌拿铁DHT-PHEV来了
深入理解为什么不要使用System.out.println()
Redis主从复制,读写分离,哨兵模式
链表-合并两个排序的列表
Hello World
The second set of 2020 American Asian individual match
MySQL练习题初级45题(统一表)
Oracle第二天(视图、索引、plsql、游标、存储过程和存储函数、触发器、jdbc访问存储过程和存储函数)
NFT数字藏品系统开发:“中国旅游日”山西首次发布古建筑数字藏品
Automated test tool playwright (quick start)
Bulletgraph (bullet diagram, bullet diagram)
云服务器mySQL提示报错
LeetCode_ 134_ gas station
Distributed link tracking Jaeger's use in golang
[kitex source code interpretation] service discovery
ECS MySQL prompt error
SSM练习第五天
多商户商城系统功能拆解16讲-平台端会员成长值记录



![[ Kitex 源码解读 ] 服务发现](/img/70/c74ede02b794e586d629876d2b2376.png)




