tcp ip socket
tcp ip 基础 OSI开放系统模型:7层模型
应用层:与应用程序界面沟通
表示层:对网络数据变化,加密 、压缩
会话层:管理主机之间会话过程 会话建立 终止 及过程管理
传输层:提供数据传输服务,检测丢弃的数据包,并请求重传
网络层:将各个子网之间进行路由组合,传输单位位数据包,有IP协议等
数据链路层:对比特流数据成帧,帧是基本传输单位,保证数据传输无差错
物理层:提供电气层规范,传输比特流
TCP IP四层模型:
文章图片
文章图片
TCP IP协议通信:
文章图片
对等通信:
相同层级可以互相通信,应用层对应用层通信,TCP与TCP通信,IP与IP通信,链路层与链路层通信
文章图片
封装:
文章图片
解封:
文章图片
端口
端口区分不同的服务,当一个IP到达,需要知道是那个服务使用
文章图片
TCP报文格式:
文章图片
文章图片
文章图片
三次握手:
ACK表示期望下一次期望收到的序号,SYN表示本次自己发送的序号
文章图片
四次握手终止:
分别发送FIN消息终止连接
文章图片
TCP保证数据的可靠性
文章图片
SOCKET编程
什么是socket: 【tcp ip socket】
文章图片
文章图片
socket可以实现异构通信:
文章图片
IPV4套接口结构:
文章图片
通用地址结构:
文章图片
字节序:
文章图片
socket字节序定义网络字节序为大端字节序
文章图片
地址转换函数:
文章图片
int inet_aton将普通的IP地址转化为:
in_addr_t inet_addr(const char *cp)将普通IP地址转化为32位整数
char *inet_ntoa(struct in_addr in);将32位整数转化为普通IP地址
套接字类型:
文章图片
TCP 客户 服务器模型
文章图片
推荐阅读
- CVE-2020-16898|CVE-2020-16898 TCP/IP远程代码执行漏洞
- spring|spring boot项目启动websocket
- CocoaAsyncSocket|CocoaAsyncSocket (GCDAsyncSocket)适配IPv6
- WebSocket|WebSocket 语法解析
- 计算机网络基础TCP\HTTP\HTTPS
- TCP长连接与段链接
- TCP组件设计篇(详细设计)
- 工具|Wireshark抓包对其字TCP段理解
- 网络|网络编程释疑(TCP连接拔掉网线后会发生什么)
- 服务器未能释放tcp连接,TCP连接的建立和释放