文章目录

  • 1.DNS系统
    • 1.1域名
    • 1.2域名服务器
    • 1.3两种查询方式
      • 1.3.1递归
      • 1.3.2迭代
  • 2.文件传输协议FTP
    • 2.1 文件传输协议原理
    • 2.2 FTP工作方式
    • 2.3 FTP存在的问题
  • 3.简单文件传输协议TFTP
    • 3.1 TFTP的一些基本情况
    • 3.2 TFTP的特点
    • 3.3TFTP报文的语法语义
    • 3. 4TFTP报文的工作流程
  • 4.远程终端协议TELNET
    • 4.1TELNET简介
    • 4.2 网络虚拟终端的格式NVT
    • 4.3 TELNET选项协商
    • 4.4常见的TELNET应用与安全性问题
      • 4.4.1常见的TELNET应用
      • 4.4.2安全性问题
  • 5.超文本传送协议HTTP
    • 5.1HTTP协议的简介
    • 5.2 WWW的工作流程
    • 5.3 HTTP的特点
    • 5.4 Cookie
    • 5.5 HTTP事务的过程
    • 5.6 请求一个WWW文档的时间
    • 5.7 HTTP报文格式
      • 5.7.1请求报文
      • 5.7.2响应报文
  • 6.电子邮件
    • 6.1电子邮件概述
    • 6.2电子邮件的工作流程
    • 6.3电子邮件的组成
    • 6.4 简单邮件传输协议SMTP
  • 7.动态主机配置协议DHCP
    • 7.1为什么需要DHCP?
    • 7.2 DHCP工作流程
    • 7.3 租期
    • 7.4 DHCP中继代理
    • 7.5 DHCP报文格式

1.DNS系统

我们访问一个网络通常需要输入它的IP地址但是IP地址太不好记了,不方便所以呢我们就发明了域名用来代替IP地址以后你要访问哪个网络你就直接输域名就行了这不比什么IP地址方便多了吗?但是你输这个域名呢人家不认识所以咋办呢,这时候DNS闪亮登场!!!!(掌声)DNS是域名解析系统它主要负责将你输入的域名转化为IP地址然后访问相应的网络资源。所以说以后在看到404就不要一直赖这个网站崩溃了也有可能是域名解析失败了。

1.1域名

来看一下这个网址www.bilibili.com这个就是一个域名。域名之间用.分割每个部分有着不同的意义。具体是啥意义咱先看一下域名树。

刚才的域名从右向左级别依次降低com是顶级域名,bilibili是二级域名,www是三级域名。一级域名中,com是企业域名,net是一般的提供一些网络资源的域名,org是一些公益组织的域名,edu是学校的,gov是政府的。还可以有一些国家的域名比如说.cn就是中国。二级域名也可以包含一些顶级域名,同时他还有标志地域的bj等等,也可以是我们自定义的,三级域名就是www是首页,mail是邮箱。

1.2域名服务器

先看一下域名服务器的层次图。

本地域名服务器是主机发送DNS查询请求的第一站,如果在它的缓存里找不到他会去查找根域名服务器。

根域名服务器存放了顶级域名服务器的IP地址。

顶级域名服务器存放了权限域名服务器的IP地址。

1.3两种查询方式

1.3.1递归

首先主机先查找本地域名服务器看看本地域名服务器缓存中是否记录了该域名的IP地址,如果没找到,就顺着去查根域名服务器根域名服务器开始解析这个域名的顶级域名所以根域名服务器就会去查找顶级域名服务器,顶级域名服务器又会去查找权限域名服务器最终将查到的IP地址依次返回最后返回给本地域名服务器。

1.3.2迭代

同样首先查找本地域名服务器看看缓存里有没有如果没有去查询根域名服务器根域名服务器将顶级域名服务器的IP地址告诉本地域名服务器本地域名服务器再去查找顶级域名服务器,顶级域名服务器将权限域名服务器的IP地址返回给本地域名服务器然后再将查到的IP地址结果返回给主机。

2.文件传输协议FTP

2.1 文件传输协议原理

客户端任意分配端口号(>1023)服务端建立两个连接一个是端口号21的控制进程负责控制文件的传输与终止,另一个是端口号为20的数据传输进程,每当要传输一个文件时都会通过一个控制进程新创建一个数据传输进程传输数据。控制进程和数据传输进程并发执行。

2.2 FTP工作方式

  1. 主动方式:客户端与服务器建立连接之后(端口号N>1023),然后监听N+1号端口,并发送命令"port N+1"到FTP服务器,此时FTP服务器用20号端口主动向客户端N+1端口建立连接。
  2. 被动方式:客户端端口N(>1023)与服务器21号端口建立连接之后客户端打开N+1号端口,发送PASV命令给服务器,服务端开启端口P,并发送"PORT P"告知客户然后客户从端口N+1和服务器端端口P建立连接用来传输数据。

2.3 FTP存在的问题

  1. FTP服务器一直处于保活状态并且他会把特定的用户账户与控制联系起来。
  2. 如果客户端不断切换文件目录会导致远程服务器不断去查找用户在文件树上的位置
  3. FTP是单点连接,当FTP的客户端数量不断增多,FTP所维持的会话总数迅速增长。这样会导致很多问题比如链路容量不够这都会限制FTP服务器的性能,一旦出现故障所有的连接都必须断开无法传送文件。

3.简单文件传输协议TFTP

3.1 TFTP的一些基本情况

  1. TFTP在运输层上使用的是UDP报文因此它需要有自己的差错改正措施

  2. TFTP只支持文件传输不支持文件交互。

  3. TFTP没有列目录所以你不能查看到TFTP服务器上的文件,也不能对用户身份进行鉴别因此它非常不安全。

3.2 TFTP的特点

  1. 每次传送的数据PDU中有512字节的数据,但最后一次可不足512字节。
  2. 数据PDU称为文件块,每个块按序编号,从1开始。
  3. 支持ASCll码或二进制传送。
  4. 可对文件进行读或写。
  5. 使用很简单的首部。
  6. TFTP发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。
  7. 发送完数据在规定时间内没有收到对方的确认就要重发数据PDU。发送PDU的一方若在规定时间内收不到下一个文件块也要重发确认PDU。

3.3TFTP报文的语法语义

TFTP报文放在UDP的数据部分,TFTP报文有5种分别是操作码为1~5的这几种情况。

操作码为1代表读请求,操作码2代表写请求,后面的文件名告诉了要读写哪个文件然后说明了读写模式是ASCll还是二进制模式。

操作码3代表着开始传递数据然后表示传递数据的块编号然后后面跟上512字节的数据。

操作码4代表着确认报文,同时跟上块编号。操作码5代表出错,然后标识哪一块文件出错,出错信息。

3. 4TFTP报文的工作流程

初始化阶段客户端向服务端发送了一个读或写请求,服务器的端口号为69。然后服务器返回一个新的端口用作数据传输。客户端向新的端口发送数据然后服务端向客户端发送回复确认报文。然后他们之间就开始不断地传输数据。

4.远程终端协议TELNET

4.1TELNET简介

TELNET是一个简单的远程终端协议,它可以通过TCP连接在远程操控另一个主机。

4.2 网络虚拟终端的格式NVT

我们通过主机操纵远程主机但是如果我们电脑上的字符编码格式和对方字符编码格式不同容易产生不必要的错误。

客户在键盘上输入的字符或者指令被转成NVT格式远程服务器接收的是NVT格式的数据它再将NVT格式的数据转换成自己的格式。返回数据也是一样的道理。

4.3 TELNET选项协商

NVT使用不同的系统互操作,但双方并不知道对方可以提供哪些功能。这时双方交互一组选项的方法去解决。启用某一项功能时先问问对方能不能提供,在通信时双方商量好。

控制命令选项协商:任意一方可以在初始化时提出一个选项生效的请求,另一方可以接收,也可以拒绝请求。

TELNET选项协商的6种情况

4.4常见的TELNET应用与安全性问题

4.4.1常见的TELNET应用

  1. 连接一个远程网络设备以便获取信息或进行配置。
  2. 连接一个大型计算机以使用其软硬件资源。
  3. 链接一个在线论坛以便与其他用户进行交互或通信

4.4.2安全性问题

TELNET应用间的信息交换是明码交换过程。因此我们可以使用SSH。

相同点:

  1. 都可以远程登录其他主机。
  2. 运输层采用TCP协议

不同点:

  1. TELNET明文传送;SSH加密传送,且支持压缩;
  2. TELNET服务默认端口号为23;SSH服务默认监听22号窗口;
  3. SSH使用对称加密算法实现数据安全传输;

5.超文本传送协议HTTP

5.1HTTP协议的简介

  1. 为使超文本连接能够高效率的完成,需要使用HTTP协议来传送一切必要信息(编码风格,语言,浏览器内核等)。
  2. 从层次角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。
    1. 事务就是一系列的信息交换,这一系列的信息交换是一个不可分割的整体;
    2. 要么所有信息交换都完成要么一次交换都不进行。
  3. HTTP永远都是客户端发起请求,服务器返回响应。这样就限制了HTTP协议只能是客户端向服务端发请求才能响应,无法做到客户端在没有响应的情况下服务器将消息推送给客户端。
  4. HTTP协议是一个无状态协议,同一个客户端的这次请求和上次请求没有任何联系。

5.2 WWW的工作流程

1.它在应用层上用HTTP协议传输在运输层上用TCP协议,首先浏览器向服务器发送一个HTTP请求报文里面包含了浏览器的一些信息,然后服务器返回响应这个响应带上浏览器所请求的资源。然后释放TCP连接。

2.每个WWW服务器运行服务器程序,它连接TCP80端口不断地监听是否有浏览器向他请求如果有建立TCP连接客户端向万维网服务器发送请求浏览某个页面,服务器接着返回这个页面作为响应然后TCP连接就被释放了。

5.3 HTTP的特点

  1. HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。
  2. HTTP协议本身也是无连接的,虽然它使用了面向连接的TCP向上提供服务。
    1. 无连接是指服务器处理完一个请求并收到客户的应答之后直接断开连接,这种方式可以节省传输时间。
    2. 因为早期每个客户端与服务器之间交换数据间歇性较大,导致两次传送的数据关联性很低,大部分通道处于空闲状态,浪费网络资源。
    3. 但是现在网页很复杂有可能有图片或视频每次建立重新建立TCP连接显得十分低效Keep-Alive被提出用来解决效率低的问题。
  3. HTTP是面向事物的客户服务器协议。
  4. HTTP1.0协议是无状态的。
    1. 无状态是指对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即服务器发送HTTP请求之后,服务器根据请求,发回数据。发送完,不记录任何信息。
    2. 如果后续处理想知道之前的信息必须重传。
    3. 优缺点:优点是减轻了服务器的负荷,缺点是每次请求可能会传输重复的内容。无状态的特点严重阻碍了客户端与服务器进行动态交互的Web应用程序,例如购物车程序。
    4. 这个问题可以通过cookie和session来解决。

5.4 Cookie

Cookie表示在HTTP服务器和客户端之间传递的状态信息。使用Cookie的网站服务器会为每一个用户创建一个唯一的识别码。利用此识别码网站就能知道该用户在网站上的一系列操作。Cookie会附着在每一个HTTP请求中,所以无形之中增加了流量,由于HTTP请求中Cookie是明文传输的所以有可能造成不安全的问题。

看一下他的工作流程首先浏览器向服务器发送HTTP请求,如果他是第一次访问服务器就会为浏览器创建一个唯一ID代表该用户,将这个用户的一些信息记录到后台数据库中的表项然后将Cookie和返回的HTTP响应一并发送给客户端。当客户端同一用户再次发送HTTP请求响应时服务端看到了你的cookie之前记录过然后查询后台数据库表向你发出HTTP响应。

5.5 HTTP事务的过程

比如说浏览器访问www.baidu.com

客户发出HTTP请求;服务器响应HTTP请求;浏览器得到HTML代码;浏览器解析HTML代码,并请求HTML代码中的资源(如js,css,图片等);

浏览器对页面进行渲染呈现给用户。

5.6 请求一个WWW文档的时间

首先WWW客户向WWW服务器发起TCP连接第一次握手然后服务器返回第二次握手这是一个RTT然后客户端在发送第三次握手的同时向客户端发送HTTP请求报文然后服务器向客户端传输文档返回HTTP响应报文所以这个流程大概是2个RTT。

5.7 HTTP报文格式

5.7.1请求报文

对于请求报文开始行叫做请求行,对于响应叫做响应行。首部是一些请求条件。

对于请求报文请求行第一个字段是请求方法请求方法的值有这些。

下面看一个HTTP请求报文的实例

5.7.2响应报文

版本HTTP的版本,状态码响应的状态,短语解释这些状态码。

  1. 1开头的响应码是一个提示信息表示请求已被接受继续处理。
  2. 2开头的表示请求已被成功理解接受。
  3. 3开头的是重定向表示要完成请求必须更进一步的操作。
  4. 4开头的是客户端错误请求有语法错误或者请求无法实现。
  5. 5开头的是服务器错误服务器未能实现合法的要求。

举例:

  1. 200 OK:客户端请求成功。
  2. 400 Bad Request:客户端语法错误服务器无法理解。
  3. 401 Unauthorized:认证失败,请求未被接受;
  4. 403 Forbidden:服务器收到请求,但是拒绝提供服务。
  5. 404 Not Found:资源不存在或者URL错了
  6. 500 Internal Server Error:服务器发生不可预知的错误
  7. 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

下面是一个响应报文的实例

6.电子邮件

6.1电子邮件概述

我们之前的HTTP连接是客户端向服务端发送,服务端给客户端回复那我们有没有这样一种机制能使得两个客户端之间传递信息呢?我们可以通过电子邮件来完成类似的功能。发送方客户端发送将内容通过SMTP协议发送给服务器,通过服务器之间在网络上进行资源传输另一端通过POP3协议接收邮件。

6.2电子邮件的工作流程

用户代理相当于客户与电子邮件之间系统的接口,客户端先与发送方邮件服务器(比如说163.com)建立TCP连接,再通过SMTP协议发送邮件给发送方邮件服务器,发送方邮件服务器与接收方邮件服务器建立TCP连接通过SMTP协议将邮件发送给接收方邮件发送器,收件人用户代理通过POP3协议将接收方邮件服务器中的POP3服务器中的内容拉取到客户端。完成邮件的传输。

6.3电子邮件的组成

信封上写着的是邮件从哪发送到哪标注的是发送方服务器的域名和接收方服务器的域名。首部包含了一些信息。然后就是邮件的主体内容。

6.4 简单邮件传输协议SMTP

SMTP协议发送邮件主要有三步

1.建立TCP连接

首先SMTP客户连接到SMTP服务器的25号端口开始建立连接三次握手结束以后服务端向客户端发送一条消息告诉客户端我准备好接收数据了然后SMTP客户端向SMTP服务器发送一条消息你好,我的域名是xxx然后SMTP服务器向SMTP客户端发送一条消息250OK。

2.SMTP协议邮件传送

邮件传送时先写信封谁发的发给谁服务端依次返回250 OK的信息,然后开始发送内容,在发送内容之前先给服务端发送一个DATA告知服务端我下面写的是内容部分,服务端收到这条消息之后返回一个信息说你可以发送邮件了,以CRLF.CRLF就是以换行回车加一个.再来一个换行回车结尾。然后客户端依次发送首部的其他信息。然后空行之后发送主体部分发完之后换行一个.再换行服务器向客户端发送一个250 OK。

3.SMTP连接释放

客户端输一个QUIT退出连接服务端给一个数字221然后说明服务关闭了。SMTP这个连接释放了,然后释放TCP连接。

7.动态主机配置协议DHCP

主机接入互联网需要配置协议参数:

  1. IP地址
  2. 子网掩码
  3. 默认路由的IP地址(默认网关)
  4. 域名服务器的IP地址

7.1为什么需要DHCP?

DHCP允许一台新加入的网络自动获取IP地址,DHCP为服务器,且位置固定的计算机指派一个永久地址。DHCP为客户端分配一个临时地址。解决了普通用户配置协议参数容易配错,管理员设置多台设备麻烦,IP地址数少于用户数等问题。这个IP地址数少于用户数是这样的我现在有两百个人接入一个网络但是他们不一定同时上网这时候我就可以在默认路由上配置一个DHCP协议假如说只有50人同时在线那我就可以分配50个IP给他们,当有人下线了我就把这个IP释放掉下一次新用户进来也可以用这个IP。DHCP协议提供了一种即插即用的联网机制对用户来说是透明的你感知不到它的存在。

7.2 DHCP工作流程

首先DHCP服务器打开67号端口,然后DHCP客户端68号端口向服务器发出DHCP请求,然后DHCP服务器回复一个响应报文告诉你IP地址,客户端如果想用这个IP的话就发送一个同意使用这个IP的报文,然后服务器发送一个确认报文。这样客户端就成功地获得了IP地址,当租期超过1/2或者超过7/8时申请续租,这时候服务器如果同意续租就返回一个确认报文,如果不同意续租就返回一个不同意的报文他就续租失败。当客户端不用这个IP地址时可以主动向客户端申请释放。注意DHCP报文是封装到UDP中的。

7.3 租期

DHCP服务器分配给DHCP客户IP地址是临时的,是有时间限制的,DHCP客户只能在一段时间之内使用这个IP。租用期可由客户端提出,租用期的数值由服务器做出决定。当超过租期的1/2时会更新租约。如果超过7/8你也要发送一个租约。

7.4 DHCP中继代理

如果当前局域网没有DHCP服务器的话我可以在一个路由器上配置DHCP服务,那么主机就可以通过这个中继代理的路由器访问到其他网络上的DHCP服务器从而获得IP地址。

7.5 DHCP报文格式

op代表了类型1是请求2是响应,htype是硬件地址类型如果是1就是以太网的MAC地址,hlen硬件地址的长度如果是以太网就是6个字节。hops跳数如果采用了DHCP中继那么每经过一跳跳数就会+1。

下面来看一下DHCP的消息类型放在options中。


以上图片部分来源于网络。

DNS,FTP,HTTP,DHCP,TFTP,SMTP详解相关推荐

  1. 【转】tftp命令详解

    转自:tftp命令详解 - 张大猛 - 博客园 介绍一个     FTP客户端-IIS7服务器管理工具 作为FTP客户端,它支持批量管理ftp站点.定时上传和定时下载,定时备份,且操作简洁.同时iis ...

  2. FTP协议及工作原理详解

    FTP协议及工作原理详解 1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的 ...

  3. 阿里云国际版设置DNS托管和智能分流教程详解

    Domain Name System 是一个在阿里上的DNS托管工具,每家云端都有自己的DNS解析服务,阿里云有一项其他云端没有的特殊功能「URL隐性转发」,用户在点击你的网站时上方秀出的是A域名,但 ...

  4. DHCP执行流程详解

    DHCP执行流程介绍 DHCP简介 DHCP大致执行流程 新主机向DHCP Server申请IP地址 DHCP Server将分配好的IP发送给新主机 新主机发送DHCP Request广播数据包,告 ...

  5. ftp上传下载文件详解

    首先导入包 import org.apache.commons.NET.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; FTPCli ...

  6. Linux中TFTP使用详解

    FTP协议简介 TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现. linux服务器端tftp-server的配置 1.安装tftp服务器 需要安装xinetd(守护tftp).tf ...

  7. CISCO DHCP配置全程详解

    某单位使用Cisco 3620作为IOS DHCP Server,他和内网相连的fastethernet0端口的IP地址为192.168.1.4,二层交换机采用两台Cisco 2950,三层交换机采用 ...

  8. openwrt dhcp不分配_【装维技巧】DHCP工作原理详解(上)

    各位小伙伴们,又是元寒气满满的一天,最近在后台听到不少人对静态配置IP地址的种种抱怨: 以上问题,各位兄弟们有遇到过吗 莫急,小维来为各位小伙伴们支招 其实吧,有了动态主机配置协议DHCP(Dynam ...

  9. Windows server 2012 R2 DHCP主从热备配合华为交换机DHCP中继配置详解(非域控版本)

    最近在给部门的Windows DHCP服务器配置主从热备,这里记录下操作过程以及一些坑和解决方法.同时因为涉及到跨网段的DHCP,还需要在三层交换机上配置DHCP中继. 我是T型人小付,一位坚持终身学 ...

最新文章

  1. 在RHEL 5中Yum应用大全
  2. VMware中无法识别usb
  3. Vijos1775 CodeVS1174 NOIP2009 靶形数独
  4. 12. Docker修改默认存储位置
  5. 蓝桥杯 ALGO-98 算法训练 数位分离
  6. Redis数据类型之字符串String
  7. 2016012052+小学四则运算练习软件项目报告
  8. AUTOSAR实战教程pdf版
  9. linux 对整个文件 url解码,linux shell实现 URL 编码/解码方法
  10. Spring核心是什么
  11. 阿贝尔定理(幂级数收敛半径的)
  12. 优化知乎使用体验+完整保存知乎文章、回答
  13. 特征值分解:特征值,特征向量,特征向量矩阵
  14. JSP页面请求和响应
  15. cve 爬虫_CVE监控之Python代码实现
  16. XCTF mobile新手区解题记录(WP)以及一些总结和思考
  17. kfc扫描点餐系统java_Java实现KFC点餐系统过程解析
  18. C++ 调用7z进行解压缩,并返回解压缩进度和异常信息
  19. llvm libLLVMCore源码分析 05 - Instruction Class
  20. Webstorm2018激活和汉化详细步骤

热门文章

  1. 宋楚老师银行风险与合规讲师
  2. 智慧树omg期末测试答案_智慧树求职omg第十五章节测试答案
  3. 请问java如何跟isapi通讯,代码怎么实现?
  4. QT项目之键盘控制光标移动
  5. android 键盘使用教程,用鼠标键盘控制你的Android手机完整图文教程
  6. Dynamic Head Unifying Object Detection Heads with Attentions 论文阅读笔记
  7. JavaScript焦点处理(获取焦点focus()、失去焦点blur())
  8. 安卓开发代码工程结构(2)
  9. HTML,多行文本输入框textarea
  10. 2016NOIP信息学竞赛提高组(北京)一等奖名单