精华内容
下载资源
问答
  • 互联网协议基础知识

    千次阅读 2018-12-20 17:13:45
    互联网的本质就是一系列的网络协议,总称为“互联网协议”(Internet Protocol Suite)。 互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。 2、互联网分层模型 互联网协议...

    一、网络通信原理

    引用自:
    阮一峰的网络日志----互联网协议入门(一)
    阮一峰的网络日志----互联网协议入门(二)
    OSI七层协议大白话解读
    网络七层协议解释
    漫谈网络通信——从OSI网络模型到TCP/IP协议族

    《TCP/IP详解 卷1:协议》读书笔记
    【老生常谈的】互联网协议
    TCP/IP协议(一)网络基础知识

    1、互联网协议

    互联网的本质就是一系列的网络协议,总称为“互联网协议”(Internet Protocol Suite)。

    互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。

    2、互联网分层模型

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层


    在这里插入图片描述

    每层运行常见物理设备


    在这里插入图片描述
    在这里插入图片描述

    2.1 物理层(Physical Layer)

    物理层主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。

    它的主要作用是传输数据比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

    2.2 数据链路层(Datalink Layer)

    物理层为我们提供了在两台设备之间传输0和1的可能,但是只是单纯的传输0和1是没有意义的。链路层的作用是将这些01信号序列化,转化为有意义的数据帧。

    那么链路层是怎么工作的呢?它工作过程大概可以理解为三个部分,发送什么数据?发送给谁?怎么发送?

    2.2.1 以太网协议

    首先需要有一个规则来定义这些01电信号,使得这些电信号变得有意义,形成了统一的标准(标准就是协议),即以太网协议(Ethernet)。

    Ethernet规定:
    一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。


    在这里插入图片描述

    head包含(固定18字节)

    • 发送者(源地址,6个字节)
    • 接收者(目标地址,6个字节)
    • 数据类型(6个字节)

    data包含:(最短46字节,最长1500字节)

    • 数据包的具体内容

    "标头"的长度,固定为18字节。"数据"的长度,最短为46字节,最长为1500字节。因此,整个"帧"最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

    2.2.2 MAC地址

    以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。


    在这里插入图片描述

    每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。


    在这里插入图片描述

    前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。有了MAC地址,就可以通过这个地址去向目标设备发送数据。

    2.2.3 广播

    知道了目标设备的MAC地址,但是怎么才能把把消息准确的发送给目标设备呢?其实解决方法很简单,发送数据时,将向网络中所有设备都发送这个消息,然后每一台设备自己来判断数据标头中包含的MAC地址是否和自己的MAC地址一致,如果一致就接收这个消息,如果不一致就不接收。这种发送数据的方式叫做“广播”。通过“广播”的方式就可以把一条数据发送到指定设备上了。


    在这里插入图片描述

    上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的"标头",找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。

    有了数据包的定义、网卡的MAC地址、广播的发送方式,"链接层"就可以在多台计算机之间传送数据了。

    2.3 网络层(Network Layer)

    2.3.1 网络层的由来:

    以太网协议,依靠MAC地址发送数据。理论上,单单依靠MAC地址,上海的网卡就可以找到洛杉矶的网卡了。实际上,“广播”的方式只能在同一子网络内发送数据。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。

    因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用"路由"方式发送。("路由"的意思,就是指如何向不同的子网络分发数据包)遗憾的是,MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。

    这就导致了"网络层"的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做"网络地址",简称"网址"。

    于是,"网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。

    网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。

    2.3.2 IP协议

    规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。

    目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成。


    在这里插入图片描述

    习惯上,我们用分成四段的十进制数表示IP地址,从0.0.0.0一直到255.255.255.255。

    互联网上的每一台计算机,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络,后一部分代表主机。比如,IP地址172.16.254.1,这是一个32位的地址,假定它的网络部分是前24位(172.16.254),那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,也就是说172.16.254.2应该与172.16.254.1处在同一个子网络。

    但是,问题在于单单从IP地址,我们无法判断网络部分。还是以172.16.254.1为例,它的网络部分,到底是前24位,还是前16位,甚至前28位,从IP地址上是看不出来的。

    那么,怎样才能从IP地址,判断两台计算机是否属于同一个子网络呢?这就要用到另一个参数"子网掩码"(subnet mask)。

    所谓"子网掩码",就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.254.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

    知道"子网掩码",我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

    比如,已知IP地址172.16.254.1和172.16.254.233的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172.16.254.0,因此它们在同一个子网络。

    总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    2.3.3 IP数据包

    根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。

    但是前面说过,以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?

    回答是不需要,我们可以把IP数据包直接放进以太网数据包的"数据"部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。

    具体来说,IP数据包也分为"标头"和"数据"两个部分。


    在这里插入图片描述

    "标头"部分主要包括版本、长度、IP地址等信息,"数据"部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。


    在这里插入图片描述

    IP数据包的"标头"部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的"数据"部分,最长为65,515字节。前面说过,以太网数据包的"数据"部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。

    2.3.4 ARP协议

    关于"网络层",还有最后一点需要说明。

    因为IP数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。通常情况下,对方的IP地址是已知的,但是我们不知道它的MAC地址。

    所以,我们需要一种机制,能够从IP地址得到MAC地址。

    这里又可以分成两种情况:
    第一种情况,如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议,通过“广播”的方式向子网络内所有设备发送一条数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个"广播"地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,就做出回复,向对方报告自己的MAC地址,否则就丢弃这个包,这样就可以通过IP地址获取到MAC地址了。

    总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。

    第二种情况,如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的"网关"(gateway),网关通过路由协议再将数据发送到目标设备上。(网络通过路由器进行连接,形成互联网。路由器是网关,但是网关不一定是路由器。 )


    在这里插入图片描述

    如图,主机2想向主机4发送一条数据,必须先将数据发送至网关A,由网关A通过路由协议查询到主机4处于子网络B,网关A会将数据发送给网关B,网关B再将数据发送给主机4,这样便完成了主机2到主机4之间的通讯。

    至此,我们应该清楚了,在两台设备间通讯所必须的条件,首先我们需要判断两台设备是否处在同一子网络中,若在同一子网络,就可以利用ARP协议来获取MAC地址,得到目标IP和MAC地址,就可以发送数据。若不在同一子网络,则需要获取网关的MAC地址,将数据发送到网关,让网关来转发。现在我们就可以在互联网上任意两台设备间通讯了。

    2.4 传输层 (Transport Layer)

    有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。

    接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?

    也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用,这个参数就叫做"端口"(port)。它其实是每一个使用网卡的应用程序的编号,不同的应用程序在主机上发送或接收数据,都要通过不同的端口,以此来确定数据包是归那个应用程序所有。

    "端口"是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。

    "传输层"的作用,就是建立"端口到端口之间"的通信,最常用的协议是TCP、UDP协议。相比之下,“网络层"的功能是建立"主机到主机之间"的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机+端口,叫做"套接字”(socket)。有了它,就可以进行网络应用程序开发了。

    2.4.1 UDP协议(不可靠传输)

    现在,我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。

    UDP数据包,也是由"标头"和"数据"两部分组成。


    在这里插入图片描述

    "标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:


    在这里插入图片描述

    UDP数据包非常简单,"标头"部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    2.4.2 TCP协议(可靠传输)

    UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

    为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。

    因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。

    TCP数据包和UDP数据包一样,都是内嵌在IP数据包的"数据"部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    TCP三次握手和四次挥手
    TCP(Transmission Control Protocol) 传输控制协议
    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
    位码即tcp标志位,有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)
    Sequence number(顺序号码) Acknowledge number(确认号码)


    三次握手
    在这里插入图片描述

    • 第一次握手:TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态;TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(SYN=1的报文段)不能携带数据,但需要消耗掉一个序号。

    • 第二次握手:TCP服务器收到请求报文后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。

    • 第三次握手:TCP客户进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1,自己的序列号seq=x+1,此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号。当服务器收到客户端的确认后也进入ESTABLISHED状态,此后双方就可以开始通信了。


      四次挥手
      在这里插入图片描述

    • 第一次挥手:客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

    • 第二次挥手:服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
      客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

    • 第三次挥手:服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

    • 第四次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
      服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

    2.5 应用层(Application Layer)

    应用程序收到"传输层"的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。

    "应用层"的作用,就是规定应用程序的数据格式。

    举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

    这是最高的一层,直接面对用户。它的数据就放在TCP数据包的"数据"部分。因此,现在的以太网的数据包就变成下面这样。


    在这里插入图片描述

    应用层中的应用软件分两种:客户/服务器和P2P体系结构

    • 客户/服务器(client/server)
      这种类型,就是我们很熟悉的客户端——服务器模型,客户端请求服务器,服务器响应客户端这样的一种方式进行“交流”

    • P2P
      也称为对等体系结构。P2P相当于每个人的电脑度可以当服务器,也可以当客户端,不单单限制于只能客户端访问服务器,你自己的计算机可以去访问别人的计算机上的内容,别的同样可以访问你计算机上的内容,这样达到一种共享的状态。

    常用协议:

    • HTTP超文本传输协议:这是一种最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页

    • DNS域名解析协议:DNS是一种用以将域名转换为IP地址的Internet服务

    • FTP文件传送协议:提供交互式的访问,基于客户服务器模式,面向连接 使用TCP可靠的运输服务

      主要功能:减少/消除不同操作系统下文件的不兼容性

    • TFTP简单文件传送协议:客户服务器模式,使用UDP数据报,只支持文件传输,不支持交互,TFTP代码占内存小

    • SMTP简单邮件传送协议:Client/Server模式,面向连接

      基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件

    • TELNET远程登录协议:客户服务器模式,能适应许多计算机和操作系统的差异,网络虚拟终端NVT的意义

    • SNMP简单网络管理协议:SNMP模型的4个组件:被管理结点、管理站、管理信息、管理协议

      SNMP代理:运行SNMP管理进程的被管理结点

      对象:描述设备的变量

      管理信息库(MIB):保存所有对象的数据结构

    • DHCP动态主机配置协议:发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名 Options –可选参数字段,参考定义选择列表中的选择文件

    3、OSI七层模型

    在这里插入图片描述

    数据在网络中传输的过程:
    发送方通过各种封装处理,把数据转换成比特流的形式,比特流在信号传输的硬件媒介中传输,接收方再把比特流进行解封装处理。


    在这里插入图片描述

    展开全文
  • 网络通信协议(互联网协议)

    千次阅读 2019-08-19 15:00:13
    一、操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件...2.1 互联网的本质就是一系列的网络协议 一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用 像...

    一、操作系统基础

    操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
    注:计算机(硬件)->OS->应用软件

    二、网络通信原理

    2.1 互联网的本质就是一系列的网络协议

    一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用
    像这样,每个人都拥有一台自己的机器,然而彼此孤立。
    在这里插入图片描述
    如何能大家一起玩耍
    在这里插入图片描述
    然而internet为何物?

    其实两台计算机之间通信与两个人打电话之间通信的原理是一样的(中国有很多地区,不同的地区有不同的方言,为了全中国人都可以听懂,大家统一讲普通话)
    在这里插入图片描述
    普通话属于中国国内人与人之间通信的标准,那如果是两个国家的人交流呢?
    在这里插入图片描述
    问题是,你不可能要求一个人/计算机掌握全世界的语言/标准,于是有了世界统一的通信标准:英语
    在这里插入图片描述
    结论:英语成为世界上所有人通信的统一标准,如果把计算机看成分布于世界各地的人,那么连接两台计算机之间的internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列的协议,总称为“互联网协议”(Internet Protocol Suite)。

    2.2 osi七层协议

    互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层
    在这里插入图片描述

    2.3 tcp/ip五层模型讲解

    我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议。就理解了整个互联网通信的原理。首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解。每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件。

    1>> 物理层

    物理层由来:上面提到,孤立的计算机之间要想一起玩,就必须接入internet,言外之意就是计算机之间必须完成组网。
    在这里插入图片描述
    物理层功能:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0。

    2>> 数据链路层

    数据链路层由来:单纯的电信号0和1没有任何意义,必须规定电信号多少位一组,每组什么意思?

    数据链路层功能:定义了电信号的分组方式。

    以太网协议:
    早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet。
    ethernet规定:

    • 一组电信号构成一个数据包,叫做‘帧’
    • 每一数据帧分成:报头head和数据data两部分
    headdata
    源地址、目的地址、数据类型数据包具体内容
    固定18个字节最短46字节,最长1500字节

    mac地址:
    head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址。
    mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
    在这里插入图片描述
    广播:
    有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另外一台主机的mac地址)
    ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼。
    在这里插入图片描述

    3>>网络层

    网络层由来:有了ethernet、mac地址、广播的发送方式,世界上的计算机就可以彼此通信了,问题是世界范围的互联网是由一个个彼此隔离的小的局域网组成的,那么如果所有的通信都采用以太网的广播方式,那么一台机器发送的包全世界都会收到,这就不仅仅是效率低的问题了,这会是一种灾难!
    在这里插入图片描述
    上图结论:必须找出一种方法来区分哪些计算机属于同一广播域,哪些不是,如果是就采用广播的方式发送,如果不是,就采用路由的方式(向不同广播域/子网分发数据包),mac地址是无法区分的,它只跟厂商有关。

    网络层功能:引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。

    IP协议:

    • 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示
    • 范围0.0.0.0-255.255.255.255
    • 一个ip地址通常写成四段十进制数,例:172.16.10.1

    ip地址分成两部分:

    • 网络部分:标识子网
    • 主机部分:标识主机

    注意:单纯的ip地址段只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网

    例:172.16.10.1与172.16.10.2并不能确定二者处于同一子网

    子网掩码:
    所谓”子网掩码”,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址172.16.10.1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

    知道”子网掩码”,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。

    比如,已知IP地址172.16.10.1和172.16.10.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,

    172.16.10.1:10101100.00010000.00001010.000000001

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

    172.16.10.2:10101100.00010000.00001010.000000010

    255255.255.255.0:11111111.11111111.11111111.00000000

    AND运算得网络地址结果:10101100.00010000.00001010.000000001->172.16.10.0

    结果都是172.16.10.0,因此它们在同一个子网络。

    总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。

    4>>传输层

    传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

    传输层功能:建立端口到端口的通信。

    tcp三次握手和四次挥手:
    在这里插入图片描述

    5>>应用层

    应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。

    应用层功能:规定应用程序的数据格式。

    例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

    6>>socket

    我们知道两个进程如果需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。

    能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,什么是socket呢?我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

    在这里插入图片描述

    三、网络通信流程

    五层协议应用(举例)
    应用层HTTP(浏览器)默认端口是80
    传输层TCP协议,需要设置双方的端口
    网络层IP协议,需要设置双方的路由IP(与网络有关)
    数据链路层以太网协议,需要设置双方的mac地址(与网络无关)
    物理层数字信号

    mac地址,也叫硬件地址,与网络无关。比如两台电脑直接通信。
    IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。

    四、TCP/IP协议

    由于TCP(传输层)和IP(网络层)非常重要,所以互联网协议又称为TCP/IP协议。

    IP表示:网络地址
    TCP表示:传输控制协议
    UDP表示:用户数据报协议

    TCP建立连接要进行3次握手:

    • 主机A 通过向主机B发送一个含有同步序列号的标志位的数据段给主机B,向主机B请求建立连接,通过这个数据段,主机A告诉主机B两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我?
    • 主机B收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用序列号作为起始数据段来回应我!
    • 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B的数据段:“我已收到回复,我现在要开始传输实际数据了”

    TCP断开连接要进行4次:

    • 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
    • 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
    • 由B端再提出反方向的关闭请求,将FIN置1
    • 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束

    由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础。

    UDP协议:

    • UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
    • 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
    • UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
    • 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
    • UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
    • UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

    我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。

    TCP与UDP的区别:

    • 基于连接与无连接;
    • 对系统资源的要求(TCP较多,UDP少);
    • UDP程序结构较简单;
    • 流模式与数据报模式 ;
    • TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

    UDP应用场景:

    • 面向数据报方式
    • 网络数据大多为短消息
    • 拥有大量Client
    • 对数据安全性无特殊要求
    • 网络负担非常重,但对响应速度要求高
    展开全文
  • 行业分类-互联网-自动注册互联网协议协议版本6的互联网协议地址和域名的方法.zip
  • 行业分类-互联网-互联网协议安全性协议设置服务器设备和处理设备.zip
  • 行业分类-互联网-互联网协议层中低架空移动率管理协议的方法与系统.zip
  • 行业分类-互联网-通过互联网协议发送人工输入设备命令.zip
  • 行业分类-互联网-对互联网协议第6版协议族进行一致性测试的方法.zip
  • 互联网协议第四版ipv4

    千次阅读 2021-11-25 11:28:42
    互联网协议第四版IPv4 概述 ipv4协议作用:通信过程的搬运工,复杂在设备之间携带数据。 路由器的作用:将两个局域网连起来。互联网就是无数局域网和路由器组成的集合 Ipv4地址 32位的地址,用来唯一标识连接到...

    互联网协议第四版IPv4


    概述

    • ipv4协议作用:通信过程的搬运工,复杂在设备之间携带数据。
    • 路由器的作用:将两个局域网连起来。互联网就是无数局域网和路由器组成的集合

    Ipv4地址

    • 32位的地址,用来唯一标识连接到网络的设备,每8个二进制位为一组,可以把每组的8个二进制为转化为对应的十进制位。如11000000 10101000 00000000 00000001可以写成192.168.0.1

    • 每个ip地址都包含两部分:网络地址和主机地址。

      网络地址:用来标识设备所连接到的局域网(就是这个主机处在哪个网段)

      主机地址:用来标识这个网络中的设备本身(在这个网段中,这个主机是第几号)

      划分主机地址和网络地址:子网掩码

    • 子网掩码:32位,使用1的部分标识网络地址,使用0的部分表示主机地址

      IP地址:10.10.1.22

      二进制:00001010 00001010 00000001 00010110

      子网掩码:11111111 11111111 00000000 00000000(255.255.0.0)

      子网掩码中1的部分位网络地址,0的部分为主机地址,那么这里10.10.0.0为网络地址,0.0.1.22为主机地址

      为了简便,IP地址和子网掩码也可以写成CIDR形式,也就是一个完整的IP地址后加一个/,斜杠右边表示网络部分的位数。本例可以写为10.10.1.22/16

    IPv4头

    0-34-78-1112-1516-1920-2324-2728-31
    版本号首部长度服务类型服务类型总长度总长度总长度总长度
    标识符标识符标识符标识符标识分片偏移分片偏移分片偏移
    存活时间存活时间协议协议首部校验和首部校验和首部校验和首部校验和
    源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址源IP地址
    目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址目的IP地址
    选项选项选项选项选项选项选项选项
    数据数据数据数据数据数据数据数据
    • 版本号:ip所使用的版本

    • 首部长度:IP头的长度

    • 服务类型:优先级标志位和服务类型的标志位,被路由器用来进行流量的优先排序

    • 总长度:IP头与数据包中的数据的长度

    • 标识符:一个唯一的标识数字,用来识别一个数据报或者被分片数据报的次序

    • 标识:用来标识一个数据包是否是一组分片数据包的一部分

    • 分片偏移:一个数据包是一个分片,这个域中的值就会被用来将数据据包以正确的顺序重新组装

    • 存活时间:用来定义数据包的生存周期,以经过路由器的跳数/秒数进行描述

    • 协议:用来标识在数据包序列中上层协议数据包的类型

    • 首部校验和:一个错误检测机制,用来确认IP 头的内容没有被损坏或者篡改

    • 源IP地址:发出数据包的主机IP地址

    • 目的IP地址:数据包目的地的IP地址

    • 选项:保留作额外的IP选项。它包含着源站选路和时间戳的一些选项

    • 数据:使用IP传递的实际数据

    ICMP数据包中的IP数据包
    Internet Protocol Version 4, Src: 192.168.3.113, Dst: 110.242.68.1
    版本号   
    	0100 .... = Version: 4
    首部长度    
    	.... 0101 = Header Length: 20 bytes (5)
    服务类型    
    	Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
    总长度    
    	Total Length: 60
    标识符    
    	Identification: 0xd843 (55363)
    标识   
    	Flags: 0x0000
    分片偏移    
    	Fragment offset: 0
    生存时间    
    	Time to live: 128
    上层协议    
    	Protocol: ICMP (1)
    首部校验和    
    	Header checksum: 0x0000 [validation disabled]
        [Header checksum status: Unverified]
    源地址   
    	Source: 192.168.3.113
    目的地址    
    	Destination: 110.242.68.1
    
    
    

    IPv4数据报存活时间TTL

    • 定义了在该数据包被丢弃之前所能经历的时间,或者能够经过的最大路由数目。

    • TTL通常在创建时就会被定义,每次被发往一个路由器的时候就减1。

      比如一个数据包的TTL=2,每经过一个路由器,TTL=TTL-1,如果TTL=0时包还没有到目的地址,就会把这个包丢弃(只是通常情况下-1,在繁忙的路由去上也可能-2)

    • 为什么要定义TTL值?从源地址到目的地址的过程中,可能会路过配置错误的路由器,有可能会出现数据包在路由器之间循环转发的情况,如果循环的数据包过多就会造成带宽减少,甚至出现拒绝服务(DoS)情况的出现。使用TTL就可以防止这个潜在的问题出现。

    IP分片

    • 数据分片将一个数据流分为更小的片段,他是IP用于解决跨越不同类型网络时可靠传输的一个特性

    • 分片主要是基于数据链路层协议所使用的最大传输单元MTU的大小以及数据链路层的设备配置情况,一般情况下,第二层使用的链路层协议是以太网,默认MTU=1500,也就是说,以太网的网络上所能传的最大报文的大小是1500字节(不包括14字节的以太网头)

    • 准备传输一个IP数据包的时候,会比较数据包的大小和MTU的大小决定是否分片,如果数据包大小>MTU就会分片

      分片步骤
      (1)设备将数据分为若干个将要接下来进行传输的数据包
      (2)每个IP头的总长度字段会被设置为每个分片的片段长度
      (3)除了最后一个分片数据包外,之前所有分片数据包的标志位都被表示为1
      (4)IP头中分片部分的分片偏移将会被设置
      (5)数据包被发送出去
      
    • IP分片真的好少见,我抓了五万多个包,愣是没发现有Fragment offset的值不是0的。

    展开全文
  • 行业分类-互联网-用于在车辆内运行基于互联网协议的功能系统的方法和关联的基于互联网协议的功能系统.zip
  • 常用互联网协议之HTTP协议

    千次阅读 2019-03-25 17:45:43
    HTTP(超文本传输协议协议是一个标准,定义了web客户端如何与web服务端对话,以及服务端如何把数据传回客户端。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 一、重要概念 1....

    前言

             HTTP(超文本传输协议)协议是一个标准,定义了web客户端如何与web服务端对话,以及服务端如何把数据传回客户端。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    一、重要概念

    1. TCP报文格式

          TCP报文格式图:
    在这里插入图片描述
    上图中有几个字段需要重点介绍下:

    (1) 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

    (2) 确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

    (3) 标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

    (A)URG:紧急指针(urgent pointer)有效。
    (B)ACK:确认序号有效。
    (C)PSH:接收方应该尽快将这个报文交给应用层。
    (D)RST:重置连接。
    (E)SYN:发起一个新连接。
    (F)FIN:释放一个连接。
    

    需要注意的是:

    (A)不要将确认序号Ack与标志位中的ACK搞混了。

    (B)确认方Ack=发起方Req+1,两端配对。

    2、三次握手

           所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:
    在这里插入图片描述

    第一次握手

          Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

    第二次握手

           Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

    第三次握手

           Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

    SYN攻击

           在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。

    检测SYN攻击

           SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:

    #netstat -nap | grep SYN_RECV
    

    3、四次挥手

            三次握手耳熟能详,四次挥手估计就少有人知道了。所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:
    在这里插入图片描述

    由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。

    第一次挥手

    Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

    第二次挥手

    Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。

    第三次挥手

    Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

    第四次挥手

    Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

    上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,具体流程如下图:


    HTTPå议系åäºä¹è¿æ¥ç¯ï¼å次æ¥æ中æ­è¿æ¥ï¼
    流程和状态在上图中已经很明了了,在此不再赘述,可以参考前面的四次挥手解析步骤。

    为什么建立连接时三次握手,而关闭连接是四次挥手:

           这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。即ack跟fin分开发送是因为server端还没把数据传完,只有传完以后才能关闭。

    为什么连接前要建立三次握手:

          为了防止服务器开启一些无用的连接。因为网络传输是有延时的,中间可能隔着非常远的距离,通过光纤或者中间代理服务器等,客户端发送一个请求,服务端收到之后如果直接创建一个链接,返回内容给到客户端,因为网络传输原因,这个数据包丢失了,客户端就一直接收不到服务器返回的这个数据,超过了客户端设置的时间就关闭了,那么这时候服务端是不知道的,它的端口就会开着等待客户端发送实际的请求数据,服务这个开销也就浪费掉了。

    4、HTTP三点注意事项

    • HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
    • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    二、HTTP流程工作流程

    一次HTTP操作称为一个事务,其工作过程可分为四步:

    1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

    2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

    3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

    4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

           如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

    三、HTTP请求

    1.请求

            一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容
    范例:

      

    1.1、HTTP请求的细节——请求行

      请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,常用的有: GET、 POST
      用户如果没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
      不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如果请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1
      GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
      如果请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

    1.2、HTTP请求的细节——消息头

      HTTP请求中的常用消息头

      accept:浏览器通过这个头告诉服务器,它所支持的数据类型
      Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
      Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
      Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
      Host:浏览器通过这个头告诉服务器,想访问哪台主机
      If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
      Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的  防盗链
      Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接

    例如:

    1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, 
    2     application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    3 Referer: http://localhost:8080/JavaWebDemoProject/Web/2.jsp
    4 Accept-Language: zh-CN
    5 User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
    6 Accept-Encoding: gzip, deflate
    7 Host: localhost:8080
    8 Connection: Keep-Alive

     

    2、响应

    2.1 HTTP响应包括的内容

      一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容 。

      
    范例:

    1 HTTP/1.1 200 OK
     2 Server: Apache-Coyote/1.1
     3 Content-Type: text/html;charset=ISO-8859-1
     4 Content-Length: 105
     5 Date: Tue, 27 May 2014 16:23:28 GMT
     6 
     7 <html>
     8     <head>
     9         <title>Hello World JSP</title>
    10     </head>
    11     <body>
    12         Hello World!
    13 
    14     </body>
    15 </html>

     

    2.2、HTTP响应的细节——状态行

        状态行格式: HTTP版本号 状态码 原因叙述
          举例:HTTP/1.1 200 OK
      状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:
      

    2.3、HTTP响应细节——常用响应头

      HTTP响应中的常用响应头(消息头)
      Location: 服务器通过这个头,来告诉浏览器跳到哪里
      Server:服务器通过这个头,告诉浏览器服务器的型号
      Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
      Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
      Content-Language: 服务器通过这个头,告诉浏览器语言环境
      Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
      Refresh:服务器通过这个头,告诉浏览器定时刷新
      Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
      Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
      Expires: -1  控制浏览器不要缓存
      Cache-Control: no-cache  
      Pragma: no-cache

    展开全文
  • 常用互联网协议之TCP/IP协议

    千次阅读 2019-03-26 11:38:11
    一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。 具体点,IP或ICMP、TCP或UDP、TELENT或FTP、以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP为网际协议族/TCP/IP协议族...
  • 深入解析互联网协议的原理

    千次阅读 2016-11-18 14:54:24
    我们每天都在使用互联网,更有很多的是依靠互联网来维持公司的正常运作、来维持人们的日常的生活,但你是否想过,互联网的信息传递是如何实现的呢?...互联网的核心是一系列协议,总称为"互联网协议
  • QUIC(Quick UDP Internet Connections,快速 UDP 网络连接)是一种实验性的网络传输协议。从网络层级来看,QUIC 是类似于 TCP,UDP 和 SPDY 的数据传输协议,目前正在由 Internet 工程任务组(IETF)进行标准化。 ...
  • IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。 IP地址类型 公有地址 公有地址(Public address)由Inter NIC(Internet Network ...
  • 互联网协议以及网络分层

    千次阅读 2014-07-18 12:55:32
    一直以来对于互联网的各种分层以及协议不太明白,读书的时候没有好好学啊,看到一篇henhao
  • 互联网协议入门-通俗易懂的讲计算机网络5层结构

    千次阅读 多人点赞 2016-06-18 19:14:12
    这是我见过的介绍计算机网络5层架构最清楚的讲解,对于学习计算机网络5层架构一定是不可缺少的一篇文章,相信...互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组
  • 我们每天使用互联网,你是否想过,它是如何实现的?...互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网
  • 互联网协议入门(网络分层)

    千次阅读 多人点赞 2018-05-29 16:52:39
    作者:阮一峰我们每天使用互联网,你是否想过,它是如何实现的?...互联网协议"(Internet ProtocolSuite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理...
  • 互联网协议入门

    万次阅读 2019-04-17 08:08:59
    我们每天使用互联网,你是否想过,它是如何...互联网的核心是一系列协议,总称为"互联网协议"(Internet Protocol Suite)。它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了互联网的原理。...
  • 互联网协议 — NTP 时间同步协议

    千次阅读 多人点赞 2021-01-31 00:57:21
    目录 文章目录目录数字化时间时间定义的类型服务器时间的类型常见的时间操作NTPNTP 的实现原理NTP 的处理流程Chrony安装与配置chronyc CLI使用 Chrony 作为 NTP ServerLinux NTPNTP ServerNTP Client ...
  • 目录 文章目录目录802.1q 数据帧头部VLAN 的 “隔离” 工作原理 802.1q 数据帧头部 VLAN 的 “隔离” 工作原理
  • 互联网协议 — HTTP 超文本传输协议

    千次阅读 2017-02-19 16:12:29
    HTTP 协议 HTTP 协议工作原理 HTTP Request 请求行 Request Header HTTP Response 状态行 Response Header BodyHTTP 协议HTTP(Hyper Text Transfer Protocol 超文本传输协议), 用于 www 万维网服务器(Server-Side) ...
  • 冲向星际的下一代互联网协议IPFS

    千次阅读 2021-09-21 21:44:30
    IPFS协议的目标是取代传统的互联网协议HTTP。 IPFS与云存储的区别 IPFS看上去可能和云储存有点相似,都是分布式存储。但是二者内在逻辑完全不同。云储存通常是由云服务厂商提供,存储提供方与使用方是一对多的模式...
  • 互联网协议入门(一)

    千次阅读 2018-04-02 16:57:25
    我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很...
  • 互联网协议 — ARP 地址解析协议

    千次阅读 2019-11-09 12:42:19
    目录 文章目录目录ARP 简述MAC 地址简述...ARP(Address Resolution Protocol,地址解析协议),是一个通过解析网络层 IP 地址来找寻数据链路层 MAC 地址的网络传输协议,它在 IPv4 中极其重要。ARP 最初在 1982...
  • IP 协议最初的 “尽力而为(Best Effort)” 已满足不了新应用场景中差异化服务的需求,DIP 能够通过确定性的报文调度和核心无状态的网络架构,同时实现三层大网端到端时延确定性和大规模可扩展性,使得在 IP 网络...
  • 互联网协议 — TCP — 性能问题解析

    千次阅读 2021-07-10 22:22:36
    TCP 在设计之初没有考虑到现今复杂的网络环境,当你在地铁上或者火车上被断断续续的网络折磨时,你可能都不知道这一切可能都是 TCP 协议造成的。 在网络通信中,从发送方发出数据开始,到收到来自接收方确认的时间被...
  • 我们每天都在使用互联网,更有很多的是依靠互联网来维持公司的正常运作、来维持人们的日常的生活,但你是否想过,互联网的信息传递是如何实现的呢?全世界几十亿台电脑,连接在一起,两两通信。在中国的某一块网卡送...
  • 互联网协议 — Non-IP 网络架构

    千次阅读 2021-07-10 21:58:33
    目录 文章目录目录Non-IP ...新工作组将取代现有的 ETSI 下一代协议(ISG NGP)工作组,原来的工作组于 2015 年成立,旨在研究即将到来的 5G 时代的网络技术需求,目标是为 5G 网络研究开发新的网络协议,以替代

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 344,733
精华内容 137,893
关键字:

互联网协议

友情链接: 扫雷.zip