zoukankan      html  css  js  c++  java
  • 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地址的数据包一步一步找到目标主机

  • 相关阅读:
    Java 实现 蓝桥杯 生兔子问题
    Java实现 蓝桥杯 基因牛的繁殖
    Java实现 蓝桥杯 基因牛的繁殖
    Java实现 蓝桥杯 基因牛的繁殖
    Java实现 LeetCode 33 搜索旋转排序数组
    Java实现 LeetCode 33 搜索旋转排序数组
    Java实现 LeetCode 33 搜索旋转排序数组
    深入探究VC —— 资源编译器rc.exe(3)
    深入探究VC —— 编译器cl.exe(2)
    深入探究VC —— 编译器cl.exe(1)
  • 原文地址:https://www.cnblogs.com/LiuChengGang/p/13365556.html
Copyright © 2011-2022 走看看