TCP/IP常识性学习笔记

一、概念了解

TCP/IP是一个网络通信协议簇,由应用层、传输控制层、网络层、网络接口层组成。TCP/IP中并非只有TCP和IP这两个协议,由于TCP和IP最具代表性,因此以此为名。

  应用层:HTTP(超文本传输协议)、FTP(文件传输协议)、Telnet(远程登录协议)。。。

  传输控制层:TCP、UDP

  网络层:IP

  网络接口层:ARP

二、HTTP

HTTP是一种请求/响应式的应用层协议,规定了请求和响应的格式(请求报文和响应报文)。

1、请求报文

请求方法:常见的有get、post、head、put、delete、options、trace、connect

  get:主要获取服务端资源,参数和参数值附在URL后面,可携带参数较少

  post:主要提交数据服务端更新资源等,参数和参数值附在请求数据中,可携带参数较多

请求头部:最常见的如cookie

2、响应报文

 状态码:1**(服务端收到请求,需请求端继续操作)、2**(成功)、3**(重定向)、4**(客户端错误)、5**(服务端错误)

  常见状态码:

  200:成功

  301:资源永久转移到其他URL

  404:请求资源不存在

  500:内部服务器错误

三、TCP协议

TCP是面向连接、可靠的传输控制层协议。

  面向连接:通过三次握手发送数据包建立连接,但是客户端和服务端并没有物理上的连接。

  可靠的:因为三次连接的机制,使得客户端和服务端都具备发送和接受的功能,所以是可靠的连接。

三次握手:

  第一次:客户端发送SYN(SEQ=X)给服务端,服务端接收-----------确保了客户端能发送

  第二次:服务端发送ACK(ACK=X+1)和SYN(SEQ=Y)给客户端,客户端接收----------确保了服务端能接收和能发送

  第三次:客户端发送ACK(ACK=Y+1)给服务端,服务端接收----------确保了客户端能接收

四次分手:

  第一次:客户端发送FIN给服务端

  第二次:服务端发送ACK给客户端

  第三次:服务端发送FIN给客户端

  第四次:客户端发送ACK给服务端

socket(套接字):

  通过    ip:port(客户端)+ip:port(服务端)    建立连接,每个主机可以有65535个port

四、网络层和网络接口层

目标IP在路由表中逐个和掩码与运算得到下一跳的IP地址或者网关。

ARP等协议用广播的方式,通过下一跳的IP得到Mac地址。如此数据包中包含目标IP和下一跳的Mac地址,直到找到目标IP和目标进程端口

五、TCP/IP整体的运行原理

应用层(如HTTP)做好了请求包想要发送,但是没有建立连接,于是

传输控制层(如TCP)通过socket表找到目标IP,想通过三次握手建立连接。但是握手需要发送数据包,于是

网络层在路由表中通过目标IP和掩码“与”运算得到下一跳IP,但是需要将目标IP放在数据包中,无法再放下一跳IP,于是

网络接口层通过ARP协议的广播机制得到下一跳的Mac地址,于是用装有 目标IP和下一跳Mac地址的数据包一步一步找到目标主机

原文地址:https://www.cnblogs.com/LiuChengGang/p/13365556.html