首页 > 其他分享 >协议栈——连接服务器

协议栈——连接服务器

时间:2023-12-26 15:32:46浏览次数:32  
标签:协议 ip 信息 tcp 头部 服务器 接字 连接 客户端

这个步骤主要的工作是:填补客户端和服务端套接字的控制信息也可以说是通信双方交换各自的控制信息并记录

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

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

客户端填补信息

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

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

服务端填补信息

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

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

控制信息

头部信息

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


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

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

套接字信息

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

标签:协议,ip,信息,tcp,头部,服务器,接字,连接,客户端
From: https://blog.51cto.com/u_14689064/8983902

相关文章

  • Win10远程桌面连接报错:出现身份验证错误,要求的函数不受支持(CredSSP)
    问题: 解决方法:1、Win+R,打开运行窗口,输入regedit,打开注册表2、找到路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System3、在System文件夹内创建文件夹项:\CredSSP\Parameters4、在Parameters文件夹内,新建DWORD(32)值(D),文件名为Al......
  • 成功解决 无法访问服务器端口问题
    问题描述访问服务器的48081端口时显示无法访问问题分析与解决问题可能是防火墙阻挡了对48081端口的访问sudosystemctlstatusfirewalld检查服务器防火墙状态防火墙是关闭状态因为我是轻量级应用服务器未设置安全组查看防火墙内的端口规则,未添加则添加端口,问题解决,......
  • KingIOServer连接S7-200 SMART PLC
    硬件:西门子200SMARTPLCSR30软件环境:1,PLC编程软件Step7Micro/WINSMART2,组态王KingIOServer具体步骤:1,打开KingIOServer工程设计器,然后新建应用/工程,输入应用名称,然后确定2,左侧项目树,设备-右键 3,左侧项目树,变量-右键,新建变量4,编译,运行 5,在弹出的窗口中,启动运行,查看变量连......
  • 智能变电站协议系列-1、GOOSE、SV、MMS协议简介及GOOSE示例运行问题(IEC61850)
    文章目录一、前言二、资料准备三、智能变电站自动化系统架构四、GOOSE、MMS、SV协议以及其他协议1、GOOSE(通用面向对象变电站事件)协议2、MMS(制造消息规范)协议3、采样值(SV)协议4、数字化变电站中使用的其他协议遗留协议五、IEC61580的开源C库GOOSE协议示例运行问题1、协议栈选择......
  • jumpserver连接ecs实例报错:UNREACHABLE! => {"changed": false, "msg": "Failed to
     报错分析思路:1.是ssh密钥设置有没有对接2.防火墙拦截问题3.用户设置问题4.sshd配置问题 问题解决: 无法与221.229.216.39端口35846进行协商:找不到匹配的主机密钥类型。他们提供的是:ssh-rsa、ssh-dss[preauth]在sshd配置中加上ssh-rsa和ssh-dss是两种主机密钥算......
  • 算力强劲!中兴通讯R5300 G5服务器开箱!
    2023年,以ChatGPT、文心一言为代表的AIGC大模型全面崛起,成为整个社会热议的话题。这些大模型,上知天文,下知地理,既能写文章,又能编代码,甚至还能吟诗作对,彻底颠覆了人们的认知。AIGC的崛起,说白了,是人类算力技术发展到一定阶段的产物。我们经过数十年的努力,拥有了性能强劲的芯片,建设了大......
  • linux下服务器ping不通公网域名(不定时更新)
    1、服务器开通的公网访问,但是ping不通域名,可配置hosts重试保存后,重试,OK2、服务器公网IP也ping不通,修改网卡配置,配置DNS重启网卡后,问题解决......
  • 服务器数据恢复-服务器raid6离线磁盘强制上线后上层分区打不开,数据无法访问的数据恢复
    服务器数据恢复环境:服务器上有一组由12块硬盘组建的raid6磁盘阵列,raid6阵列上层有一个lun,映射到WINDOWS系统上使用,WINDOWS系统划分了一个GPT分区。服务器故障&分析:服务器在运行过程中突然无法访问。对服务器进行检测后,工作人员发现服务器raid6阵列中有3块磁盘处于离线状态,于是将......
  • 什么是 MySQL JDBC 连接池中最高效的连接检测语句?
    在回答这个问题之前,首先我们看看MySQL中有哪些常用的JDBC连接池:c3p0DBCPDruidTomcatJDBCPoolHikariCP这些连接池中,这些连接池中,c3p0是一个老牌的连接池,很多流行框架,在其老版本中,都将c3p0作为默认的连接池。DBCP和TomcatJDBCPool(Tomcat的默认连接池)是Apache......
  • HTTP协议与框架设计
    HTTP协议超文本传输协议(HypertextTransferProtocol),它定义了浏览器怎样向万维网请求万维网文档,以及怎样把万维网服务器文档传送给浏览器。HTTP协议使用URL(UniformResourceLocator)来定位互联网上的资源。URL由协议类型、服务器地址、端口号和资源路径组成。例如,http://www.ex......