• 关于HTTP和TCP/IP


    一、TCP/IP

    概念:TCP/IP是互联网相关的各类协议族的总称。

    TCP/IP协议族按层次分为4层,应用层、传输层、网络层和数据链路层。

    应用层:

    决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务。比如FTP(文件传输协议)和DNS(域名系统)服务就是其中两类。HTTP协议也处于该层。

    传输层:

    对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

    在传输层有两个不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)。

    网络层:

    处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机,并把数据包传送给对方。IP网际协议位于该层。

    链路层:

    用来处理链接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网络适配器,网卡)及光纤等物理可见部分。

    TCP是全双工的,即客户端在给服务器端发送信息的同时,服务器端也可以给客户端发送消息。而半双工的意思是A可以给B发,B也可以给A发,但是A在给B发的时候,B不能给A发,即不同时,为半双工。单双工只能A发给B,B不能发给A;或者只能B发给A,A不能发给B。

    在创建TCP连接时,三次握手:

    • 发送端发送一个带有SYN标志的数据包给接收端。
    • 接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。
    • 最后发送端再传回一个带ACK标志的数据包,代表握手结束。

    断开TCP连接时,四次握手,比如客户端数据发送完了,需要断开连接

    • 客户端发送一个FIN给服务端,客户端=>FIN_WAIT1(关闭客户端到服务器的连接)
    • 服务端收到FIN后,发回一个ACK。服务端=>CLOSE_WAIT
    • 服务端发送一个FIN给客户端。服务端=>LAST_ACK(关闭服务器到客户端的链接)
    • 客户端收到FIN,然后返回一个ACK。客户端=>TIME_WAIT,服务端=>CLOSE

    此处,首先关闭的是客户端,执行主动关闭,而另一方执行被动关闭。在最后一次握手中,客户端发送一个ACK后,会进入time-wait,此时CP链接并没有释放,然后经过时间等待计时器设置的2MSL后,客户端才进入到close状态。2MSL是报文存在的最大时间

    参考文档:http://blog.csdn.net/guyuealian/article/details/52535294

  • 相关阅读:
    树分治
    实现自己的shell--MIT xv6 shell
    逆元打表
    Linux fork()函数
    三分:求解凸函数极值
    anti-nim 游戏
    nginx配置文件详解
    nginx之别名、location使用
    shell脚本编程基础知识点
    linux任务计划
  • 原文地址:https://www.cnblogs.com/yddlvo/p/8422499.html
Copyright © 2020-2023  润新知