Linux进阶之TCP/IP的三次握手和四次挥手的理解(基于面试)

一、简述TCP/IP协议

互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。

二、两种传输的模式

TCP面向有连接 可靠 常用于点对点 例如微信,打电话
UDP面向无连接 高速 常用于点对面 例如直播

三、数据的方向

在互联网里面,永远是客户端主动连接到服务端

四、端口的作用以及端口的类型

端口的作用:主机通过端口区分不同的网络服务

端口的类型:端口可分为虚拟端口物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴

温馨提示:虚拟端口的范围是1~65535

五、TCP的六种标志符

SYN(synchronous),建立联机
ACK(acknowledgement),确认
PSH(push),传输
FIN(finish),结束
RST(reset),重置
URG(urgent),紧急

六、TCP的三次握手与四次挥手

三次握手:

概念:三次握手指的是在发送数据的准备阶段,服务端跟客户端之间进行的三次交互才能连接成功

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。

确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。
确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。
同步SYN:连接建立时用于同步序号。当SYN=1,ACK&#

你可能感兴趣的:(socket编程,linux,tcp/ip,linux,面试)