TCP/IP
模型
OSI
模型比较复杂且学术化,所以我们实际使用的
TCP/IP
模型,共分
4
层,
链路层、网络层、传输层、应用层
。两个模型之间的对应关系如图所示:

TCP/IP
三次握手

TCP
的三次握手的漏洞
在
TCP
三次握手中是有一个缺陷的,就是如果我们利用三次握手的缺陷 进行攻击。这个攻击就是 SYN
洪泛攻击。三次握手中有一个第二次握手,服务端 向客户端应道请求,应答请求是需要客户端 IP
的,服务端是需要知道客户端
IP 的,攻击者就伪造这个IP
,往服务器端狂发送第一次握手的内容,当然第一次握 手中的客户端 IP
地址是伪造的,从而服务端忙于进行第二次握手但第二次握 手当然没有结果,所以导致服务器端被拖累,死机。
解决方法:
无效连接监视释放
延缓
TCB
分配方法
使用防火墙
TCP
四次挥手(分手)

一次完整
http
请求的过程
首先进行
DNS
域名解析(本地浏览器缓存、操作系统缓存或者
DNS
服务器) 建立 TCP
连接 在 HTTP
工作开始之前,客户端首先要通过网络与服务器建立连接,该连接 是通过 TCP
来完成的,该协议与
IP
协议共同构建
Internet
,即著名的
TCP/IP 协议族,因此 Internet
又被称作是
TCP/IP
网络。
HTTP
是比
TCP
更高层次的 应用层协议,根据规则,只有低层协议建立之后,才能进行高层协议的连接,因 此,首先要建立 TCP
连接,一般
TCP
连接的端口号是
80
;
• 客户端向服务器发送请求命令
一旦建立了
TCP
连接,客户端就会向服务器发送请求命令;
例如:
GET/sample/hello.jsp HTTP/1.1
• 客户端发送请求头信息
客户端发送其请求命令之后,还要以头信息的形式向服务器发送一些别的信 息,之后客户端发送了一空白行来通知服务器,它已经结束了该头信息的发送;
• 服务器应答
客户端向服务器发出请求后,服务器会客户端返回响应;
例如:
HTTP/1.1 200 OK
响应的第一部分是协议的版本号和响应状态码
• 服务器返回响应头信息
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同响应向用 户发送关于它自己的数据及被请求的文档;
• 服务器向客户端发送数据
服务器向客户端发送头信息后,它会发送一个空白行来表示头信息的发送到 此为结束,接着,它就以 Content-Type
响应头信息所描述的格式发送用户所请
求的实际数据;
• 服务器关闭
TCP
连接
一般情况下,一旦服务器向客户端返回了请求数据,它就要关闭
TCP
连接, 然后如果客户端或者服务器在其头信息加入了这行代码 Connection:keep-alive
, TCP 连接在发送后将仍然保持打开状态,于是,客户端可以继续通过相同的连接 发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带 宽。
请求报文结构
