TCP/IP协议详解

一。TCP/IP协议 

   IP协议主要用于在网络层 不同主机间数据传递数据包的封装 格式为:

   

 TCP协议用于传输层用于端口到端口之间数据格式的传递 (一般称为报文)

 

6位状态控制标识 用于标识控制该数据报文的用途

  URG :为 1 表示紧急指针有效,为 0 则忽略紧急指针值。
  ACK :为 1 表示确认号有效,为 0 表示报文中不包含确认信息,忽略确认号字段。
  PSH :为 1 表示是带有 PUSH 标志的数据,指示接收方应该尽快将这个报文段交给应用层而不用等待缓冲区装满。
  RST :用于复位由于主机崩溃或其他原因而出现错误的连接。它还可以用于拒绝非法的报文段和拒绝连接请求。一般情况下,如果收到一个 RST 为 1 的报                    文,那么一定发生了某些问题。
  SYN :同步序号,为 1 表示连接请求,用于建立连接和使顺序号同步( synchronize )。
  FIN :用于释放连接,为 1 表示发送方已经没有数据发送了,即关闭本方数据流。

TCP协议建立连接三次握手

描述:

握手1:A和B建立连接的过程 A 发送一个TCP报文 报文序列号为1 (假设) 并且将控制标识SYN设置为1  

握手2:B接受到报文后解析后确认A需要建立连接 :  ACK=1确认A的连接 确认过程必须将A的序列号+1 AckSeq=2返回给A 本身也有一个序列号100(假设)  因为TCP连接要求双方都建立连接 B需要确认A的连接的同时需要发送一个B连接A的控制标识 SYN=1标识发送一个B连接A的控制标识 这个报文包含了两个动作   确认A和B连接A

握手3:A接受到报文后 因为有B建立 连接的请求所有A 发送一个确认的包, 每个包必须存在一个序列号 1已经被上次请求使用了 这次序列号为2 Ack=1表示确认 正式确立连接


TCP关闭连接四次握手

  过程同三次连接

  


二。ARP协议 

  主要用于网络层到数据链路层的ip和物理地址的映射 window下通过(arp-a 查看系统缓存arp数据)

  主机A访问主机B (A找到主机B实际是通过数据链路层的物理地址寻找的) 第一次访问时 主机A不确认B的物理地址 但是A知道B的ip地址(编码一般都会告知对方ip地址否则怎么连接) 此时A发送一个广播给所有能访问的机器 确认对方的ip地址后 该ip地址对应的机器 通过解析帧获取到原始发送机器A的物理地址

单播当前机器的物理地址给A  实现了寻找物理地址的过程  A会缓存arp和ip的对应关系 下次直接就可以获取物理地址

 使用wireshark监听本机网络 看到很多ARP请求


三。ICMP协议 

  主要在网络层 用于判断ip地址是否可达  应答时间等 一般ping命令就是该协议的实现

四。wireshark抓包

  主要在网络层 用于判断ip地址是否可达  应答时间等 一般ping命令就是该协议的实现

  wireshark和osi七层的图解

  

tcp抓包图解

 

wireshark表达式过滤规则 (带有提示功能)

     http表示拦截http协议

     ip 表示拦截ip

     其他参考官网

五。window下的网络命令

   ping命令 判断对方机器是否可连接  ping ip地址

   ipconfig命令  查看当前所有的网络接口信息 ip和物理地址  ipconfig /all

   arp命令  查看arp的物理地址和ip地址的映射表  arp -a

   netstat 查看tcp,udp信息 监听端口信息  netstat -aon 查看监听端口进程  netstat -r 查看路由表

   tracert 查看访问某个ip所有的经过的转发的过程  tracert ip地址

   pathping 查看ip转发过程(tracert )和判断目标是否能通(ping)

   route 查看路由表(逻辑ip 经过下一个路由的地址) route print

   nslookup 查看域名转换ip是否成功 

   net命令 用户组 虚拟ip等控制

原文地址:https://www.cnblogs.com/liaomin416100569/p/9331214.html