zoukankan      html  css  js  c++  java
  • 常用网络协议

    链路层

    ARP协议(Address Resolution Protocol)

    请求:广播

    应答:单播

    根据IP解析MAC地址

    免费ARP (源:自己  目标:自己) 检测IP冲突

    RARP协议(Reverse Address Resolution Protocol)

    根据MAC解析IP,适用于无盘工作站

    网络层

    IP协议(Internet Protocol)网际协议----计算机之间通信

    IP报文结构图

    版本

    (version) 4

    报头长度

    (Header Length) 4

    服务类型

    (Type of Service) 8

    总长度

    (Total Length) 16

    20字节IP报头

    标识符

    (Identifier) 16

    标志

    (Flags) 3

    片偏移

    (Fragment offset) 13

    生存时间

    (Time of live) 8

    协议

    (Protocol) 8

    首部校验和

    (Header Checksum) 16

    源IP地址 32

    目标IP地址 32
    选项(若有) 32  
    传递数据(n bit)  

    报头:20字节

    版本:一般为 4 或 6

    报头长度:IPv4不固定 20-60(选项40max)

    服务类型:对特殊报文处理(0-7)优先级越大越高;配置传输服务类型:如吞吐量、时延、可靠性、费用

    总长度:整个IP报文携带最大字节数(65535个字节)

    标识符:表示为某一种IP数据包分配一个唯一标识,为保证数据被分段后可重新组合(正确)

    标志:有三位

    一位  保留

    二位  不分片(1=DF)

    三位  还有数据被分段至MF=0(1=MF)

    片偏移:只产生在分段的情况下,两个分段之间的相对位置

    生存时间:经过路由器减1

    协议:用于标识OSI上层所携带的具体协议

     ICMP协议(Internet Control Message Protocol)控制报文协议,是TCP/IP的子协议----针对错误和状态

    用于IP主机、路由器之间传递可达性控制消息,确定信息源信宿是否可达,路由器是否可用。

    ICMP协议帧结构

    类型 编码 校验和
    报文体

    类型:标示ICMP报文类型

    如:3  表示目标不可达

      11  超时

      0  回显应答

      8  回显请求

      30  路由跟踪

    编码:每种ICMP报文类型中分派出256种子类型

    校验和:为IcMP报文提供差错保护

    报文体:被封装在ICMP报文中初始数据

    传输层

    TCP协议(Transmission Control Protocol)传输控制协议----应用程序之间通信

    完成可靠性交付传输;双向触发过程

    三次握手(为提高效率,2、3合为一次

    1.客户触发服务器,发出 syn=1

    2.服务器发送确认信号,ack=1

    3.服务器向客户机发送 syn=1,达到相互触发

    4.客户机回应触发信号,ack=1

    TCP确认窗口 1;滑动窗口 3

    安全漏洞:伪造客户端IP发送消息给服务器

    UDP协议(User Datagram Protocol)用户数据报协议----应用程序之间的简单通信

    用户数据包协议;无连接的传输层协议

    源端口 目标端口  长度 校验和 被封装的上层数据

    源端口:一般是随机生成的端口号

    目标端口:通常是众所周知的端口号

    长度:整个UDP报文长度

    TCP与UDP

    TCP加强传输数据的可靠性

    UDP传输即时数据(速度高)

    TCP/IP 中包含一系列用于处理数据通信的协议

    TCP(传输控制协议)、UDP(用户数据报协议)、IP(网际协议)、ICMP(因特网消息控制协议)、DACP(动态主机配置协议)

    TCP/IP 意味着TCP和IP在一起协同工作

    TCP 负责应用软件和网络软件之间的通信

    IP 负责计算机之间的通信

    TCP 负责将数据分割并装入IP包,然后在它们到达的时候重新组合它们

    IP 负责将包发送至接受者

    应用层

    HTTP(Hyper Text Transfer Protocol)

    超文本传输协议,默认端口80;现在不仅作为单纯的协议而是作为一种数据的封装方式

     版本: 1.0  、1.1

       无状态   有状态

    三次握手----访问应答----切断连接----再次访问三次握手……

    HTTP请求报文结构

    HTTP版本号 HTTP方法 URL 请求头 实体头

    HTTP版本号:1.0/1.1(微软通常使用)

    HTTP方法:GET:请求web页面信息

           HEAD:申请web页面信息不返回信息体

           POST:请求较大数据(代替GET)

    URL:被请求的网址

    请求头:被请求的文件类型(*/*表示所有的文件类型)

    实体头:包含被请求实体的原信息、编码类型

    HTTP响应报文结构

    HTTP版本号 状态码 响应头 实体头 内容

    HTTP版本号:1.0/1.1

    状态码:帮助用户理解HTTP工作状态

    1XX  提示信息  表示请求已被成功接收,继续处理

    2XX  成功  表示请求已被成功接收,理解,接受

    3XX  重定向  要完成请求必须进行更进一步的处理

    4XX  客户端错误  请求有语法错误或请求无法实现

    5XX  服务器端错误  服务器未能实现合法的请求

    常见状态码

    200 OK  请求被成功地完成,所请求的资源发送回客户端

    302 Found  重定向,新的URL会在response中的Location中返回,浏览器将会自动使用新的URL发出新的Request

    304 NOT Modified  代表上次的文档已经被缓存了,还可以继续使用(如果不想使用本地缓存,可以用Ctrl+F5强制刷新页面)

    400 Bad Request  客户端请求与语法错误,不能被服务器所理解

    403 Forbidden  服务器收到请求,但是拒绝提服务

    404 NOT Found  请求资源不存在(输错了URL)

    500 Internal Server Error  服务器发生了不可预知的错误

    503 Server Unavailable  服务器当前不能处理客户端的请求,一段时间后,可能恢复正常

    响应头:包括web回应的HTTP内容是否被加密认证,是否公开

    实体头:包括HTTP响应编码形式、语言、内容长度、内容、文件类型、最后一次修改时间

    HTTP申明封装媒体文件类型从MIME借鉴而来

    语法:content-type:<类型>/<子类型>

    HTTP内容缓存(不能被缓存)的注意事项

    ● URL 中带?

    ● 具有 proxy-authenticate(代理认证)的内容

    ● 具有 public/private 内容

    ● 当 pragma = no - cache 的内容

    ● 当生存时间(TTL)大于有效年龄(Age)的内容

    MIME(Multipurpose Internet Mail Extentions)是一种多用途的邮件扩展(附件、功能)

    使用特殊的技术将各种多媒体信息编码成ASCII格式

    内容类型首部语法:内容类型:<类型>/<子类型>

    常见格式:文本(Text)、图像(image)、音频(audio)、视频(video)、模型(model)、应用程序(application)

     FTP协议(File Transfer Protocol)文件传输协议

    工作模式:主动FTP、被动FTP

    端口:TCP20  连接

       TCP21  传输

       TCP21  连接

       TCP1025-5000  任意端口传输

    部分防火墙的ACL的故障常见处

    主动FTP

         首次TCP三次握手(21)

    客户端 ——————————————> 服务器

       <—————————————— 

         二次TCP三次握手(20)

    问题:由服务器到客户端主动访问会被拦截

    解决:采用被动FTP或用智能防火墙

    被动FTP

           TCP三次握手(21)——>告诉使用端口(21)传数据

    客户端 ——————————————> 服务器

        ——————————————>

           TCP三次握手(随机)

    Mei
  • 相关阅读:
    mac快捷键,pycharm快捷键
    Django进阶之session
    Python:如何将字符串作为变量名
    Ubuntu中创建用户
    redis在centos上的安装
    centos--网络配置问题,提示connect: Network is unreachable
    Python 3.x--paramiko模块详解
    Python 3.x--paramiko模块安装过程中的错误
    Python 3.x--Socket实现简单的ssh和文件下载功能
    Python 3.x--面向对象编程(二)静态方法、类方法、属性方法
  • 原文地址:https://www.cnblogs.com/xiaomei1990/p/11358164.html
Copyright © 2011-2022 走看看