网络编程一:IP数据包、七层网络模型、TCP/IP协议
一、IP数据包
包头,由20字节组成:
- 4位ip版本标识(如ipv4,ipv6),4位首部长度(internet头长度),8位服务类型TOS,16位总长度字节数....共4字节;
- 16位标识(用于标识数据报的分段),3位分段标识(标识报文是否允许被分段和是否使用了这些域),13位分段偏移....共4字节;
- 8位生存时间TTL,8位协议(如tcp、udp),16位首部校验和....共4字节;
- 32位源IP地址....共4字节;
- 32位目的IP地址....共4字节......一共20字节
IP数据包组成:如TCP数据包或UDP数据包,由包头(IP首部,20字节)+选项(TCP或UDP首部,如果有,20字节)+数据(TCP、UDP数据)组成。
TCP首部组成,共20字节,160位:
- TCP源端口:16位源端口号;源端口+源IP地址的作用,用于标识报文的返回地址
- TCP目的端口:16位目标端口号;目的端口+目的IP地址,用于标识报文的发送地址
- TCP序列号:32位的序列号,由接收端计算机使用,用于组合分段的报文
- TCP应答号:32位的应答ACK标识,用于标识下一个希望收到的报文的第一个字节
- 数据偏移:32位数据结构或称为双字为单位,由以下组成:4位TCP头大小,6位保留,6位标志域(每1位标志可以打开一个控制功能:紧急标志URG、有意义的应答标志ACK、推PSH、重置连接标志RST、同步序列号标志SYN、完成数据发送标志FIN),16位窗口大小(每个TCP数据段大小)
- 在:16位校验和(用于错误检查),16位紧急指针
TCP首部和TCP数据之间,也可以有选项(如果有)
二、OSI网络七层模型:
OSI七层模型 相关协议 缩写
应用层
HTTP 超文本传输协议
FTP 文件传输协议
SMTP 简单邮件传输协议
TELNET TCP/IP终端仿真协议
POP3 邮局协议第三版
Finger 用户信息协议
NNTP 网络新闻传输协议
IMAP4 因特网信息访问协议第四版
LPR UNIX 远程打印协议
Rwho UNIX 远程 Who协议
Rexec UNIX远程执行协议
Login UNIX 远程登陆协议
RSH UNIX 远程Shell协议
NTF HP网络文件传输协议
RDA HP 远程数据库访问协议
VT 虚拟终端仿真协议
RFA HP 远程文件访问协议
RPC Remote Process Comm.
S-HTTP 安全超文本传输协议
GDP网关发现协议
X-Window
CMOT 基于TCP/IP的CMIP协议
SOCKS 安全套接字协议
FANP流属性通知协议
SLP服务定位协议
MSN微软网络服务
Radius 远程用户拨号认证服务协议
DNS 域名系统
NFS网络文件系统协议
NIS SUN 网络信息系统协议
R-STAT SUN远程状态协议
NSM SUN 网络状态监测协议
PMAP SUN 端口映射协议
Mount
LPR UNIX远程打印协议
常用UDP协议的应用层服务
BOOTP引导协议
DHCP动态主机配套协议
NTP网络时间协议
TFTP简单文件传输协议
SNMP简单网络管理协议
表示层
DECnet NSP
LPP 轻量级表示协议
NBSSN NetBIOS会话服务协议
XDP外部数据表示协议
IPX
会话层
SSL 安全套接字层协议
TLS传输层安全协议
DAP目录访问协议
LDAP轻量级目录访问协议
RPC远程过程调用协议
VINES NETRPC
VFRP
NeTBIOS
IPX
传输层
XOT 基于tcp之上的X协议
Van Jacobson 压缩TCP协议
ISO-DE ISO 开发环境-------->NetBISO
TALI 传输适配层接口协议
DSI、NetBIOS、IP NeTBIOS、ISO-TP SSP、SMB、MSRPC
UDP用户数据报协议
RUDP可靠的用户数据报协议
Mobile IP 移动IP协议
网络层
IP/IPv6 互联网协议/互联网协议第六版
ICMPv6互联网控制信息协议第六版
ICMP互联网控制信息协议
IGMP 互联网组管理协议
SLIP 串行线路IP协议
安全协议
AH 认证头协议
ESP 安装封装有效载荷协议
路由协议
EGP 外部网关协议
OSPF 开放最短路径优先协议
IGRP 内部网关路由协议
NHRP 下一跳解析协议
IE-IRGP 增强内部网关路由选择协议
RIPng for IPv6 IPv6路由信息协议
GGP 网关到网关协议
VRRP 虚拟路由器冗余协议
PGM 实际通用组播协议
RSVP 资源预留协议
PIM-DM 密集模式独立组播协议
DVMRP 距离矢量组播路由协议
RIP2 路由信息协议第二版
PIM-SM 稀疏模式独立组播协议
MOSPF 组播开放最短路径优先协议
数据链路层
MPLS 多协议标签交换协议
XTP 压缩传输协议
DCAP 数据转换客户访问协议
SLE 串行连接封装协议
IPinIP IP套IP封装协议
隧道协议
PPTP点对点隧道协议
L2F第二层转发协议
L2TP 第二层隧道协议
ATMP接入隧道管理协议
Cisco 协议
CDP 思科发现协议
CGMP 思科组管理协议
地址解析协议
ARP地址解析协议
RAR逆向地址解析协议
物理层
IEEE 802.2
Ethernet v.2
Internetwork
三、TCP/IP协议
互联网协议,有上百种协议,但是最重要的两个协议是TCP和IP协议,所以也有互联网协议简称为TCP/IP协议。
IP协议,负责把数据从一台计算机通过网络发送到另一个计算机。数据被分割成一小块一小块,希后通过IP包发送出去。
路由器,负责决定如何把一个IP包转发出去。
IP包,按块发送,途径多个路由,但不能保证到达,也不保证顺序到达。
IP地址:IPV4,由32位4字节组成;IPV6由128位16字节组成。
TCP协议,建立在IP协议之上的。
TCP协议,负责在两台计算机上建立可靠的连接,保证数据包按顺序到达。
TCP协议,通过3次握手建立连接,保证可靠的顺序的连接。
TCP协议,通过握手建立连接,然后,对每个IP包编号,确保对方按顺序收到;如果IP包丢掉了,就自动重发。
TCP三次握手,建立连接:
客户端-->服务端 ip包tcp包,请求连接
服务端-->客户端 ip包tcp包,应答
客户端-->服务端 ip包tcp包,建立连接
建立连接后,客户端才能向服务端发送数据。
断开连接:
服务端-->客户端 ip包tcp包 FIN
客户端-->服务端 ip包tcp包 ACK
客户端-->服务端 ip包tcp包 FIN
服务端-->客户端 ip包tcp包 ACK
四、TCP、UDP客户端与服务器:
客户端、服务端连接图:
代码,略
posted on 2018-10-28 10:14 myworldworld 阅读(841) 评论(0) 收藏 举报