TCP/IP协议分析(个人理解)

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协议三次握手:

 

 

说错了别喷,谢谢。。。。

你可能感兴趣的:(android)