网络基础知识

【OSI七层协议】
在这里插入图片描述【TCP/IP五层协议】
在这里插入图片描述TCP/IP &OSI 协议模型对比
在这里插入图片描述在这里插入图片描述
1.应用层网络协议

(1)Telnet协议 端口号:23 是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。Telnet是常用的远程控制Web服务器的方法。

(2)FTP协议 端口号:21 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

(3)HTTP 协议 端口号:80 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

(4)SNMP协议 端口号:161 (Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了

(5)TFTP 协议 端口:65 TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。

(6)SMTP 端口:25(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

(7)DNS 端口号:53 DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。DNS是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库。DNS协议运行在UDP协议之上,使用端口号53。在传输层TCP提供端到端可靠的服务,在UDP端提供尽力交付的服务。其控制端口作用于UDP端口53。

DHCP

DHCP角色
DHCP客户端:通过DHCP协议请求获取IP地址等网络参数的设备。例如,IP电话、PC、手机、无盘工作站等。
DHCP服务器:负责为DHCP客户端分配网络参数的设备。
(可选)DHCP中继:负责转发DHCP服务器和DHCP客户端之间的DHCP报文,协助DHCP服务器向DHCP客户端动态分配网络参数的设
DHCP报文
DHCP报文类型:

DHCP Discover

由客户端来查找可用的服务器。

DHCP offer

服务器用来响应客户端的DHCP Discover报文,并指定相应的配置参数。

DHCP Resquet

由客户端发送给服务器来请求配置参数或者请求配置确认或者续借租期。

DHCP ACK

由服务器到客户端,含有配置参数包括IP地址。

DHCP Decline

当客户端发现地址已经被使用时,用来通知服务器。

DHCP Inform

客户端已经有IP地址时用它来向服务器请求其他的配置参数。

DHCP NAK

由服务器发送给客户端来报名客户端的地址请求不正确或者租期已过期。

DHCP Release

客户端要释放地址时用来通知服务器。

DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。

DHCP的报文格式如下图所示。
DHCP报文格式:

这里写图片描述

图:DHCP报文格式
报文字段解释:
字段 长度 含义
OP (op code) 1字节 表示报文的类型:1:客户端请求报文2:服务器响应报文
htype (hardware type) 1字节 表示硬件地址的类型。对于以太网,该类型的值为“1”。
hlen (hardware type) 1字节 表示硬件地址的长度,单位是字节。对于以太网,该值为6。
Hops 1字节 表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP中继数目。
xid 4字节 事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。
secs (seconds) 2字节 由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。
flags 2字节 此字段在BOOTP中保留未用,在DHCP中表示标志字段。只有标志字段的最高位才有意义,其余的位均被置为0。最左边的字段被解释为广播响应标志位,内容如下所示:0:客户端请求服务器以单播形式发送响应报文1:客户端请求服务器以广播形式发送响应报文
ciaddr (client ip address) 4字节 表示客户端的IP地址。可以是服务器分配给客户端的IP地址或者客户端已有的IP地址。客户端在初始化状态时没有IP地址,此字段为0.0.0.0。IP地址0.0.0.0仅在采用DHCP方式的系统启动时允许本主机利用它进行临时的通信,不是有效目的地址。
yiaddr (your client ip address) 4字节 表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。
siaddr (server ip address) 4字节 DHCP客户端获得启动配置信息的服务器的IP地址。
giaddr (gateway ip address) 4字节 该字段表示第一个DHCP中继的IP地址(注意:不是地址池中定义的网关)。当客户端发出DHCP请求时,如果服务器和客户端不在同一个网络中,那么第一个DHCP中继在转发这个DHCP请求报文时会把自己的IP地址填入此字段。服务器会根据此字段来判断出网段地址,从而选择为用户分配地址的地址池。服务器还会根据此地址将响应报文发送给此DHCP中继,再由DHCP中继将此报文转发给客户端。若在到达DHCP服务器前经过了不止一个DHCP中继,那么第一个DHCP中继后的中继不会改变此字段,只是把Hops的数目加1。
chaddr (client hardware address) 16字节 该字段表示客户端的MAC地址,此字段与前面的“Hardware Type”和“Hardware Length”保持一致。当客户端发出DHCP请求时,将自己的硬件地址填入此字段。对于以太网,当“Hardware Type”和“Hardware Length”分别为“1”和“6”时,此字段必须填入6字节的以太网MAC地址。
sname (server host name) 64字节 该字段表示客户端获取配置信息的服务器名字。此字段由DHCP Server填写,是可选的。如果填写,必须是一个以0结尾的字符串。
file (file name) 128字节 该字段表示客户端的启动配置文件名。此字段由DHCP Server填写,是可选的,如果填写,必须是一个以0结尾的字符串。
options 可变 该字段表示DHCP的选项字段,至少为312字节,格式为”代码+长度+数据”。DHCP通过此字段包含了服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用

HTTP

Hyper Text Transfer Protocol,超文本传输协议

HTTP请求

    HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。

    HTTP请求由状态行、请求头、请求正文三部分组成:

状态行:包括请求方式Method、资源路径URL、协议版本Version;

请求头:包括一些访问的域名、用户代理、Cookie等信息;

请求正文:就是HTTP请求的数据。
备注:请求方式Method一般有GET、POST、PUT、DELETE,含义分别是获取、修改、上传、删除,其中GET方式仅仅为获取服务器资源,方式较为简单,因此在请求方式为GET的HTTP请求数据中,请求正文部分可以省略,直接将想要获取的资源添加到URL中。下图所示就是GET的请求,没有请求正文。详细的说明在下边。

    现在大多数协议版本为http/1.1

blob.png

    下图所示为POST请求的格式,有状态行、请求头、请求正文三部分。

blob.png

HTTP响应

2.1 响应数据格式
服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应。

    HTTP响应由三部分组成:状态行、响应头、响应正文;

状态行:包括协议版本Version、状态码Status Code、回应短语;

响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;

响应正文:就是响应的具体数据。
备注:我们主要关心并且能够在客户端浏览器看得到的是三位数的状态码,不同的状态码代表不同的含义,其中

1xx表示HTTP请求已经接受,继续处理请求
2xx表示HTTP请求已经处理完成
3xx表示把请求访问的URL重定向到其他目录
4xx-表示客户端出现错误-
5xx表示服务端出现错误

具体HTTP响应实例如下图:
在这里插入图片描述

常见状态码的含义

    200---OK/请求已经正常处理完毕

    301---/请求永久重定向

    302---/请求临时重定向

    304---/请求被重定向到客户端本地缓存

    400---/客户端请求存在语法错误

    401---/客户端请求没有经过授权

    403---/客户端的请求被服务器拒绝,一般为客户端没有访问权限

    404---/客户端请求的URL在服务端不存在

    500---/服务端永久错误

    503---/服务端发生临时错误

HTTP响应模型

    服务器收到HTTP请求之后,会有多种方法响应这个请求,下面是HTTP响应的四种模型:

    单进程I/O模型

服务端开启一个进程,一个进程仅能处理一个请求,并且对请求顺序处理;

    多进程I/O模型

服务端并行开启多个进程,同样的一个进程只能处理一个请求,这样服务端就可以同时处理多个请求;

    复用I/O模型

服务端开启一个进程,但是呢,同时开启多个线程,一个线程响应一个请求,同样可以达到同时处理多个请求,线程间并发执行;

    复用多线程I/O模型

服务端并行开启多个进程,同时每个进程开启多个线程,这样服务端可以同时处理进程数M*每个进程的线程数N个请求。

HTTP报文格式

    HTTP报文是HTTP应用程序之间传输的数据块,HTTP报文分为HTTP请求报文和HTTP响应报文,但是无论哪种报文,他的整体格式是类似的,大致都是由起始、首部、主体三部分组成,起始说明报文的动作,首部说明报文的属性,主体则是报文的数据。接下来具体说明。

3.1 HTTP请求报文
在这里插入图片描述
请求报文的起始由请求行构成(有些资料称为状态行,名字不一样而已,都是指的一个东西),用来说明该请求想要做什么,由、、 三个字段组成,注意每个字段之间都有一个空格。

    其中<Method>字段有不同的值:

            GET   --- 访问服务器的资源

            POST  --- 向服务器发送要修改的数据

            HEAD  --- 获取服务器文档的首部

            PUT   --- 向服务器上传资源

            DELETE--- 删除服务器的资源

    <URL>字段表示服务器的资源目录定位

    <Version>字段表示使用的http协议版本

    首部部分由多个请求头(也叫首部行)构成,那些首部字段名有如下,不全:

            Accept     指定客户端能够接收的内容格式类型

            Accept-Language 指定客户端能够接受的语言类型

            Accept-Ecoding  指定客户端能够接受的编码类型

            User-Agent      用户代理,向服务器说明自己的操作系统、浏览器等信息

            Connection      是否开启持久连接(keepalive)

            Host            服务器域名

            ...

    主体部分就是报文的具体数据。                      

3.2 HTTP响应报文
在这里插入图片描述
响应报文的起始由状态行构成,用来说明服务器做了什么,由、、三个字段组成,同样的每个字段之间留有空格;

    <Status-Code> 上边已经说明; 

    首部由多个响应头(也叫首部行)组成, 首部字段名如下,不全:

            Server    服务器软件名,Apache/Nginx

            Date      服务器发出响应报文的时间

            Last-Modified   请求资源的最后的修改时间

            ...

    主体部分是响应报文的具体数据。

关注我的微信公众号:hello521day ,大量网络,渗透、编程资料以及ppt等模板等你来取!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值