网络编程(一)——TCP编程基础

本文详细介绍了TCP网络编程的基础知识,包括IP协议的组成部分、TCP传输的特点和数据格式,以及TCP连接的建立与断开。重点讲解了网络字节序的重要性,以及在Linux环境下进行TCP编程涉及的socket、bind、listen、accept和connect等关键函数的使用。同时,提供了简单的服务器和客户端实现示例。
摘要由CSDN通过智能技术生成

目录

1.基础知识

1.1 IP协议

1.1.1  IP地址的分类

1.1.2 子网掩码

1.1.3 网络字节序

1.2传输控制协议(TCP)

1.2.1 TCP传输的特点

1.2.2 TCP的数据格式

1.2.3 建立连接与断开连接

1.3.4 TCP的封装与解封过程

2.基本数据结构与接口

2.1 sockaddr和sockaddr_in

2.2 用户层与内核层的交互过程

2.2.1 向内核空间传入数据的交互过程

2.3 TCP网络编程流程

2.4 几个重要的函数详解

2.4.1 socket()

2.4.2 bind()

2.4.3 listen()

2.4.4 accept()

2.4.5 connect()

3. 一个简单的服务器/客户端的例子


1.基础知识

1.1 IP协议

版本(4位) 首部长度(4位) 服务类型(8位) 总长度(16位)
标识(16位) 标识(3位) 片偏移(13位)
生存时间TTL(8位) 协议类型(8位) 头部校验和(16位)
源IP地址(32位)
目的IP地址(32位)
选项(32位)
数据
  • 首部长度——整个黄色区域的长度,以32位的字为单位。
  • 服务类型如下>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
字段 优先权 D T R F 保留
长度(位) 3 1 1 1 1 1
含义 优先级 延迟 吞吐量 可靠性 费用 未用

服务类型字段由应用程序进行设置,路由器仅在必要的时候进行读取,不进行设置。

  • 总长度——包括头部跟数据
  • TTL——源主机在发送报文时设置TTL(一般为32或64),表示数据报文最多可以经过的路由器的数量。它指定报文的生存时间,每经过一个路由器TTL减1,当TTL为0的时候,路由器丢弃此包,并发送一个ICMP报文来通知源主机。
  • 协议类型如下>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值