协议栈——连接服务器

如对方的ip和port配置信息,这里的连接是指通信前的准备工作

上一篇介绍查看套接字的命令时,可以看到很多信息,但是刚刚创建出来的套接字是什么信息都没有的,协议栈也因此不知道和谁通信;

客户端填补信息

这一步中调用socket的connect指定通信的服务器ip和端口还有使用的描述符,对应的套接字会保存这些信息,这样客户端的协议栈就可以知道通信对方的信息了。

协议栈的tcp模块根据ip地址和端口号接着创建tcp头部信息讲这些信息填入,协议栈的tcp模块也就知道了服务器的ip和端口 接着委托ip模块 和服务器的ip模块发送数据

服务端填补信息

和客户端不一样,创建套接字是服务器启动就会执行的,创建完成后一直在等待客户端的连接。收到客户端的连接后,也会取出对应的端口号判断出使用哪个套接字,并把相关信息保存到套接字中。

服务器的ip模块收到数据转发给tcp模块,根据头部信息的端口号找到对应的soxket链接进行双方的建立管道通信

控制信息

头部信息

控制信息用于确定通信双方,一类是头部信息,如下图所示:


上面介绍的是tcp头部的信息;ip协议也有头部在这层协议会把ip头部添加到tcp头部前面;网卡必须知道mac地址,因此也有mac头部添加到ip头部。都是在不同层进行添加的。

这类信息在连接通信断开的各个阶段都需要携带在tcp的头部。

套接字信息

还有一类信息是用于控制协议栈操作的 ,这部分是套接字保存的信息,不同操作系统协议栈实现不同,但套接字保存的内容有一些是共通都需要的,只要这部分信息能够确定就可以进行通信,不需要考虑不同操作系统不同协议栈导致的差异

原文链接:协议栈------连接服务器 - 掘金 (juejin.cn)

相关推荐
刚刚觉醒的小菜鸡2 分钟前
ssh连接本地虚拟机
linux·服务器·ssh
持梦远方2 分钟前
Linux之认识理解目录
linux·运维·服务器
openHiTLS密码开源社区4 分钟前
【密码学实战】openHiTLS s_server命令行:搭建国密标准安全通信服务器
服务器·物联网·密码学·openhitls·tlcp·商用密码算法·dtlcp
真命天子_重庆_中国8 分钟前
记一次生产服务器磁盘I/O性能瓶颈与负载过高分析与处理
运维·服务器
携欢16 分钟前
PortSwigger靶场之CSRF where token is tied to non-session cookie通关秘籍
运维·服务器·前端
BothSavage26 分钟前
Ubuntu-8卡H20服务器升级nvidia驱动+cuda版本
linux·服务器·ubuntu·gpu·nvidia·cuda·nvcc
K_i1341 小时前
OSI七层模型:从原理到实战
运维·服务器·网络
信创工程师-小杨1 小时前
国产银河麒麟SP1桌面版本启动ssh服务报错解决办法
linux·服务器·ssh
jixunwulian2 小时前
5G+AIoT智赋,AI电力加密边缘网关智慧电网数字化运维解决方案
运维·人工智能·5g