HTTP/HTTPS、TCP/UDP协议、IP地址

简介:TCP/IP是互联网相关的各类协议族的总称,可以理解为把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口,TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等,分为四层:

    应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等;

    传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文;

    网络层:负责路由以及把分组报文发送给目标网络或主机;

    链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等;

一、HTTP

  简介:HTTP(Hyper Text Transfer Protocol)是超文本传输协议,是用于从远程服务器传输超文本到本地浏览器的协议。她是基于请求与响应、无状态的、应用层的协议,基于TCP/IP协议传输数据。

   1. HTTP协议无状态和管线化

    无状态:协议对事务处理没有记忆能力,当客户端向服务器发送请求,服务器响应完毕后,两者断开连接,也不保存连接状态。

            针对无状态的解决策略:HTTP/1.1持久连接,特点是只要任意一端没有明确提出断开连接,则保持TCP连接状态,请求头中添加Connection: keep-alive即可。在HTTP/1.1版本中,默认都是持久连接

          管线化:能够同时并发多个请求,不需要一个接一个等待响应了,且响应是按顺序返回的。

  2. HTTP报文

    A.  请求报文:请求行、请求头、空行和请求体组成

       请求行:请求方法、请求URL、HTTP协议及版本

       请求方法:GET——获取资源、POST——向指定资源提交数据进行处理、PUT——更新资源、DELETE——删除资源;

        GET和POST区别:GET在浏览器回退时是无害的,而POST会再次提交请求;

                                                             GET请求会被浏览器主动缓存,而POST不会,除非手动设置;

                                                             GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留;

                                                             GET请求在URL中传送的参数是有长度限制的,而POST没有限;

                                                             GET参数通过URL传递,POST放在Request body中

      请求URL:协议://主机:端口/路径

    请求头:关键字:值对组成,可以自定义

    B.  响应报文:状态行、响应头、空行和响应体组成

      状态行:协议版本、状态码及状态码描述

        状态码:1xx:指示信息——表示请求已接收,继续处理(websocket)

                                      2xx:成功——表示请求已被成功接收、理解、接受

                                      3xx:重定向——要完成请求必须进行更进一步的操作;

                                      4xx:客户端错误——请求有语法错误或请求无法匹配上;

                                      5xx:服务器端错误——服务器未能实现合法的请求。

 

二、HTTPS

  1. 自签名证书

    A. 生成服务器私钥:openssl genrsa -des3 -out ssl.key 2048,注意需要输入两次密码;

      去除密码:openssl rsa -in ssl.key -out ssl.key;

    B. 生成服务器证书:openssl req -new -key ssl.key -out ssl.csr -config /usr/ssl/openssl.cnf;

      openssl version -a 

    C. 使用私钥对证书签名:openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt;

 https://blog.csdn.net/dnc8371/article/details/106707701

 

 

 

三、TCP

  简介:TCP(Transmission Control Protocol)协议是面向连接的协议,即在收发数据前,必须和对方建立可靠连接。

  1. 特点

    A. 面向连接:一个TCP连接必须经过三次握手才能建立起来;

    B. 只支持一对一传输:每条TCP传输连接只能有两个端点,只能进行点对点的数据传输;

    C. 面向字节流:在不保留报文边界的情况下以字节流方式进行传输;

    D. 可靠传输:对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传;

    E. 提供拥塞控制:当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞;

    F. 全双工通讯:允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段。

  2. 测试TCP端口:telnet IP PORT;

  3. TCP分类:TCP分长连接和短连接,短连接是指在数据包发送完成后就会自己断开,长连接是指发包完毕后,会在一定的时间内保持连接,取决于keepalive。

 

四、UDP

  简介:UDP(User Data Protocol)协议即用户数据报协议,是一个无连接协议,传输数据之前发送端和接收端不建立连接,对于某些实时性要求高的场景很适合。

  1. 特点

    A. 无连接:当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制,在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段;

    B. 支持一对多、多对多、多对一方式:因为无连接就不需要维护连接状态等,所以可同时向多个客户机传输相同的消息;

    C. 面向报文:发送方的UDP对应用程序交下来的报文, 在添加首部后就向下交付给IP层,既不拆分,也不合并,而是保留这些报文的边界;

    D. 开销小:UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小;

    E. 不可靠:首先是无连接就不可靠,其次是数据不会备份,接收端是否收到也不关心,最后是没有拥塞控制机制,网络不好时会发生丢包情况;

  2. 测试UDP端口

    A. nc:nc -vuz IP,如果返回succeeded,代表可能访问成功,否则一定访问失败;

    B. namp:具体参考nmap用法

 

五、IP、子网掩码

  1. IP介绍

    A. IP(Internet Protocol)地址在互联网上给每一台主机的每一个接口分配一个在全世界范围内唯一的32位或64位标识符,IP地址也用于IP分组在网络中的寻址;

    B. IPv4地址通常采用"点分十进制"表示,但网络设备在对IP地址进行计算时使用的是二进制的操作方式;

    C. IP地址由网络地址(网络号)和主机地址(主机号)构成

      网路地址:指网络的地址;

      主机地址:可分配给网络中终端设备的地址;

    D. IP网络通信类型分单播、广播和组播;

    E. 外网IP和内网IP的区别

      外网IP:连接Internet的广域网地址,由Internet信息中心负责分配和管理,确保地址不冲突;

      内网IP:公司企业的局域网,Internet信息中心上没有这类地址,连接Internet时要做NAT网络地址转换,其中:

        A类:10.0.0.0/8,保留了1个A类网络;

        B类:172.16.0.0/16~172.31.0.0/16,保留了16个B类网络;

        C类:192.168.0.0/24~192.168.255.0/24,保留了256个C类网络;

   2. IP地址的类别

    A. A类地址最高位为0,网络号8位,主机号24位,地址范围为1.0.0.0 ~ 126.255.255.255,其中0.0.0.0为本机所有IP地址,127.0.0.1为本机回环地址,缺省子网掩码255.0.0.0;

    B. B类地址最高位为10,网络号16位,主机号16位,地址范围为128.0.0.0 ~ 191.255.255.255,缺省子网掩码255.255.0.0;

    C. C类地址最高位为110,网络号24位,主机号8位,地址范围为192.0.0.0 ~ 223.255.255.255,缺省子网掩码255.255.255.0;

    D. D类地址最高位为1110,是组播地址,无子网掩码,地址范围为224.0.0.0 ~ 239.255.255.255;

    E. E类地址是保留的,作为研究使用,其中255.255.255.255为广播地址;

  3. 子网掩码(Subnet Mask)

    A. 子网掩码和IP地址是成对出现的,通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作;

    B. 子网掩码值为1的bit对应IP地址中的网络位,值为0的bit对应IP地址中的主机位,值1或0注意必须是连续的,其实就是IP地址与子网掩码做与运算来分离IP中网络号和主机号;

    C. 子网掩码的表示法

      点分十进制:如255.255.255.0;

      CIDR斜线记法:IP地址/n,n取值为1~32,表示子网掩码中网络号的长度,如192.168.1.1/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000;

  4. 网关(Gateway)

    A. 网关又称网间连接器、协议转换器,网关在网络层上实现网络互连,仅用于两个高层协议不同的网络互连,支持广域网和局域网;

    B. 在局域网中如公司内网,采用路由来接入网络,一般所指的网关就是路由器的默认LAN接口P地址,负责不同网段之间的数据转发;

    C. 两台主机之间通信,首先要判断是否处于同一网段,即网络地址是否相同,如果相同,那么可以把数据包通过交换机直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地

 

可参考:IP地址和子网划分学习笔记

    路由器支持IP端口回流

http://www.360doc.com/content/19/0614/11/20226523_842383162.shtml

 

posted @ 2020-06-25 23:24  如幻行云  阅读(634)  评论(0编辑  收藏  举报