TCP---segment格式
16位源端口号(16位也就是最大10进制是65536,这个端口是随机生成的) | 16位目标端口号(16位也就是最大10进制是65536,这个端口是目标TCP层的端口) | |||||||
32位随机生成的序列号也就是seq,这个序列号是客户端先发出来的,同时服务端也是在这里存放seq的 | ||||||||
32位服务机发出的ack确认序列号,这个ack是在客户机发出的序列号基础上加1,这样可以确定是哪个客户发出的,服务机将ack发出去之后,客户机收到ack码,客户机的seq就是ack码,客户机收到的ack码在服务机发出的seq上加1 | ||||||||
4位首部长度,也就是16,不够一个字节 | 保留6位,也就是64,不够一个字节 | Sin同步标志 | Fin终止标志 | Rst复位标志 | Psh推送标志 | Ack确认标识 | Urg紧急标志 | 16位窗口大小,向对方通知当前本机的接收缓冲区大小 |
16位校验 | 16位紧急指针 | |||||||
选项 | ||||||||
数据 | ||||||||
|
上表是tcp的segment格式,每一行是32个计算机位,也就是4个字节,前5行是首部定长,也就是固定死了的20个字节
IP-----数据报格式
4位版本---这是表明当前的版本是ipv4还是ipv6 | 4位首部长度,最大值是15,单位是32位,4个字节,也就是最大值是60字节 | 8位服务类型 | 16位总长度,也就是65536,单位是字节,所以大小是65536字节,总长度包挂头部 | ||
16位标示,是用来分片和重组的 | 3位标志,用来标志分片的 | 13位偏移,分片时再下个基础上加1,单位是64位 | |||
8位生存时间(ttl),最大值是255 | 8位协议,标明上层的协议是什么,如tcp | 16位首部检验 | |||
32位源Ip地址,ipv4,的最大值是。。。 | |||||
32位目的ip地址 | |||||
选项 | |||||
数据 |
TCP/IP通信,首先是tcp传输层,客户在操作系统中随机生成一个端口,然后指定目前主机的端口,客户机这边随机生成一个seq码,下一层是ip,ip通过协议标志明白是tcp协议,然后在客户这边进行一系列的操作,该分片的分片,纽带自己的ip与服务端的ip,下一层链路层,通过主板上的电缆push到链路层的机器cpu,将数据转成高电压或者低电压,形成了数据,服务机收到客户机的seq码,生成ack,发送给客户端,客户端收到ack,再次发送生成的ack,此时tcp/ip协议已经建立
看一下tcp/ip协议三次握手:
说错了别喷,谢谢。。。。