网络协议,tcp,udp(1)

TCP/IP 模型
 
OSI 模型比较复杂且学术化,所以我们实际使用的 TCP/IP 模型,共分 4 层, 链路层、网络层、传输层、应用层 。两个模型之间的对应关系如图所示:
 
网络协议,tcp,udp(1)
TCP/IP
三次握手
 
网络协议,tcp,udp(1)
 
TCP 的三次握手的漏洞
 
TCP 三次握手中是有一个缺陷的,就是如果我们利用三次握手的缺陷 进行攻击。这个攻击就是 SYN 洪泛攻击。三次握手中有一个第二次握手,服务端 向客户端应道请求,应答请求是需要客户端 IP 的,服务端是需要知道客户端 IP 的,攻击者就伪造这个IP ,往服务器端狂发送第一次握手的内容,当然第一次握 手中的客户端 IP 地址是伪造的,从而服务端忙于进行第二次握手但第二次握 手当然没有结果,所以导致服务器端被拖累,死机。
 
解决方法:
无效连接监视释放
延缓 TCB 分配方法
使用防火墙
 
TCP 四次挥手(分手)
 
网络协议,tcp,udp(1)
 
一次完整 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 连接在发送后将仍然保持打开状态,于是,客户端可以继续通过相同的连接 发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带 宽。
 
请求报文结构
 
网络协议,tcp,udp(1)