• 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地址的数据包一步一步找到目标主机

  • 相关阅读:
    Ubuntu中root用户和user用户的相互切换
    Linux扩展权限
    計蒜客/填志愿(匈牙利算法)
    計蒜課/排澇(Edmond-Karp)
    計蒜客/數正方形(dp)
    51nodcontest#24 A(xjb)
    計蒜客/节食的限制(01背包)
    計蒜客/小教官(xjb)
    atcoder#073D(枚舉)
    Educational Codeforces Round 20 C(math)
  • 原文地址:https://www.cnblogs.com/LiuChengGang/p/13365556.html
Copyright © 2020-2023  润新知