TCP/IP协议

如果面试官问你,你了解TCP/IP的协议吗,你知道TCP/IP 和UDP/IP的差异吗?我想你可以这么回答

首先,简单描述
  1. tcp/ip是一种可靠的网络通信协议,它定义了主机之间通过网络传输数据的标准
  2. tcp/ip分层模型有五层,每一层都有各自的协议,用于通讯。tcp和udp处于传输层,ip处于网络层
image.png
其次,三次握手协议

为什么说,tcp/ip是可靠的传输协议呢,因为主机之间通讯会经过3次握手,建立稳定链接后,才开始传输数据

  • 第一次握手:客户端向服务器端发起链接请求,会发送SYN=1,seq=j(随机数)到服务端。此时客户端处于SYN_SEND状态。
  • 第二次握手:服务器端收到客户端的请求后,通过SYN=1知道客户端想要建立链接,这个时候,服务器端会发送SYN=1,ACK=1,ack=j+1,seq=k(随机数)给客户端。此时,服务器端处于SYN_RCVD状态。
  • 第三次握手:客户端收到服务器发送的消息后,确认ack=j+1没问题,发送ACK=1,ack=k+1。服务器端收到后,确认ack=k+1没问题,客户端与服务器端连接建立成功,都处于ESTABLISHED状态,可以传输数据了。
image.png
扩展,syn攻击

当客户端发送链接请求与客户端第一次握手后,server处于SYN_RCVD状态,在server收到client返回的ack之前,server一直处于半连接的状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向server不断地发送SYN包,server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,server需要不断重发直至超时。这些伪造的SYN包将占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。
(tips1:未连接队列:服务器维护一个未连接队列,该队列为每个客户端的SYN包开设一个条目
tips2:syn攻击检测命令:#netstat -nap | grep SYN_RECV)

最后,四次挥手协议

四次挥手协议用于终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

image.png

由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,087评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,126评论 6 174
  • 同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍。 一、 计算机网络体系结构分层 二、 TCP/IP 基础...
    涤生_Woo阅读 65,177评论 38 1,037
  • 一个协议族,比如TCP / IP,是一组不同层次上的多个协议的组合。TCP / IP通常被认为是一个四层协议系统,...
    A_Coder阅读 1,387评论 0 0
  • 天气炎热,工作烦躁 咖啡见底,精神萎靡 此时此刻,小确幸光临 走廊尽头空了许久的饮料贩卖机 居然开始补货了 叮叮咚...
    大鱼有余阅读 198评论 0 1