我们访问一个网络通常需要输入它的IP地址但是IP地址太不好记了,不方便所以呢我们就发明了域名用来代替IP地址以后你要访问哪个网络你就直接输域名就行了这不比什么IP地址方便多了吗?但是你输这个域名呢人家不认识所以咋办呢,这时候DNS闪亮登场!!!!(掌声)DNS是域名解析系统它主要负责将你输入的域名转化为IP地址然后访问相应的网络资源。所以说以后在看到404就不要一直赖这个网站崩溃了也有可能是域名解析失败了。
来看一下这个网址www.bilibili.com这个就是一个域名。域名之间用.分割每个部分有着不同的意义。具体是啥意义咱先看一下域名树。
刚才的域名从右向左级别依次降低com是顶级域名,bilibili是二级域名,www是三级域名。一级域名中,com是企业域名,net是一般的提供一些网络资源的域名,org是一些公益组织的域名,edu是学校的,gov是政府的。还可以有一些国家的域名比如说.cn就是中国。二级域名也可以包含一些顶级域名,同时他还有标志地域的bj等等,也可以是我们自定义的,三级域名就是www是首页,mail是邮箱。
先看一下域名服务器的层次图。
本地域名服务器是主机发送DNS查询请求的第一站,如果在它的缓存里找不到他会去查找根域名服务器。
根域名服务器存放了顶级域名服务器的IP地址。
顶级域名服务器存放了权限域名服务器的IP地址。
首先主机先查找本地域名服务器看看本地域名服务器缓存中是否记录了该域名的IP地址,如果没找到,就顺着去查根域名服务器根域名服务器开始解析这个域名的顶级域名所以根域名服务器就会去查找顶级域名服务器,顶级域名服务器又会去查找权限域名服务器最终将查到的IP地址依次返回最后返回给本地域名服务器。
同样首先查找本地域名服务器看看缓存里有没有如果没有去查询根域名服务器根域名服务器将顶级域名服务器的IP地址告诉本地域名服务器本地域名服务器再去查找顶级域名服务器,顶级域名服务器将权限域名服务器的IP地址返回给本地域名服务器然后再将查到的IP地址结果返回给主机。
客户端任意分配端口号(>1023)服务端建立两个连接一个是端口号21的控制进程负责控制文件的传输与终止,另一个是端口号为20的数据传输进程,每当要传输一个文件时都会通过一个控制进程新创建一个数据传输进程传输数据。控制进程和数据传输进程并发执行。
TFTP在运输层上使用的是UDP报文因此它需要有自己的差错改正措施
TFTP只支持文件传输不支持文件交互。
TFTP没有列目录所以你不能查看到TFTP服务器上的文件,也不能对用户身份进行鉴别因此它非常不安全。
TFTP报文放在UDP的数据部分,TFTP报文有5种分别是操作码为1~5的这几种情况。
操作码为1代表读请求,操作码2代表写请求,后面的文件名告诉了要读写哪个文件然后说明了读写模式是ASCll还是二进制模式。
操作码3代表着开始传递数据然后表示传递数据的块编号然后后面跟上512字节的数据。
操作码4代表着确认报文,同时跟上块编号。操作码5代表出错,然后标识哪一块文件出错,出错信息。
初始化阶段客户端向服务端发送了一个读或写请求,服务器的端口号为69。然后服务器返回一个新的端口用作数据传输。客户端向新的端口发送数据然后服务端向客户端发送回复确认报文。然后他们之间就开始不断地传输数据。
TELNET是一个简单的远程终端协议,它可以通过TCP连接在远程操控另一个主机。
我们通过主机操纵远程主机但是如果我们电脑上的字符编码格式和对方字符编码格式不同容易产生不必要的错误。
客户在键盘上输入的字符或者指令被转成NVT格式远程服务器接收的是NVT格式的数据它再将NVT格式的数据转换成自己的格式。返回数据也是一样的道理。
NVT使用不同的系统互操作,但双方并不知道对方可以提供哪些功能。这时双方交互一组选项的方法去解决。启用某一项功能时先问问对方能不能提供,在通信时双方商量好。
控制命令选项协商:任意一方可以在初始化时提出一个选项生效的请求,另一方可以接收,也可以拒绝请求。
TELNET选项协商的6种情况
TELNET应用间的信息交换是明码交换过程。因此我们可以使用SSH。
相同点:
不同点:
1.它在应用层上用HTTP协议传输在运输层上用TCP协议,首先浏览器向服务器发送一个HTTP请求报文里面包含了浏览器的一些信息,然后服务器返回响应这个响应带上浏览器所请求的资源。然后释放TCP连接。
2.每个WWW服务器运行服务器程序,它连接TCP80端口不断地监听是否有浏览器向他请求如果有建立TCP连接客户端向万维网服务器发送请求浏览某个页面,服务器接着返回这个页面作为响应然后TCP连接就被释放了。
Cookie表示在HTTP服务器和客户端之间传递的状态信息。使用Cookie的网站服务器会为每一个用户创建一个唯一的识别码。利用此识别码网站就能知道该用户在网站上的一系列操作。Cookie会附着在每一个HTTP请求中,所以无形之中增加了流量,由于HTTP请求中Cookie是明文传输的所以有可能造成不安全的问题。
看一下他的工作流程首先浏览器向服务器发送HTTP请求,如果他是第一次访问服务器就会为浏览器创建一个唯一ID代表该用户,将这个用户的一些信息记录到后台数据库中的表项然后将Cookie和返回的HTTP响应一并发送给客户端。当客户端同一用户再次发送HTTP请求响应时服务端看到了你的cookie之前记录过然后查询后台数据库表向你发出HTTP响应。
比如说浏览器访问www.baidu.com
客户发出HTTP请求;服务器响应HTTP请求;浏览器得到HTML代码;浏览器解析HTML代码,并请求HTML代码中的资源(如js,css,图片等);
浏览器对页面进行渲染呈现给用户。
首先WWW客户向WWW服务器发起TCP连接第一次握手然后服务器返回第二次握手这是一个RTT然后客户端在发送第三次握手的同时向客户端发送HTTP请求报文然后服务器向客户端传输文档返回HTTP响应报文所以这个流程大概是2个RTT。
对于请求报文开始行叫做请求行,对于响应叫做响应行。首部是一些请求条件。
对于请求报文请求行第一个字段是请求方法请求方法的值有这些。
下面看一个HTTP请求报文的实例
版本HTTP的版本,状态码响应的状态,短语解释这些状态码。
举例:
下面是一个响应报文的实例
我们之前的HTTP连接是客户端向服务端发送,服务端给客户端回复那我们有没有这样一种机制能使得两个客户端之间传递信息呢?我们可以通过电子邮件来完成类似的功能。发送方客户端发送将内容通过SMTP协议发送给服务器,通过服务器之间在网络上进行资源传输另一端通过POP3协议接收邮件。
用户代理相当于客户与电子邮件之间系统的接口,客户端先与发送方邮件服务器(比如说163.com)建立TCP连接,再通过SMTP协议发送邮件给发送方邮件服务器,发送方邮件服务器与接收方邮件服务器建立TCP连接通过SMTP协议将邮件发送给接收方邮件发送器,收件人用户代理通过POP3协议将接收方邮件服务器中的POP3服务器中的内容拉取到客户端。完成邮件的传输。
信封上写着的是邮件从哪发送到哪标注的是发送方服务器的域名和接收方服务器的域名。首部包含了一些信息。然后就是邮件的主体内容。
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连接。
主机接入互联网需要配置协议参数:
DHCP允许一台新加入的网络自动获取IP地址,DHCP为服务器,且位置固定的计算机指派一个永久地址。DHCP为客户端分配一个临时地址。解决了普通用户配置协议参数容易配错,管理员设置多台设备麻烦,IP地址数少于用户数等问题。这个IP地址数少于用户数是这样的我现在有两百个人接入一个网络但是他们不一定同时上网这时候我就可以在默认路由上配置一个DHCP协议假如说只有50人同时在线那我就可以分配50个IP给他们,当有人下线了我就把这个IP释放掉下一次新用户进来也可以用这个IP。DHCP协议提供了一种即插即用的联网机制对用户来说是透明的你感知不到它的存在。
首先DHCP服务器打开67号端口,然后DHCP客户端68号端口向服务器发出DHCP请求,然后DHCP服务器回复一个响应报文告诉你IP地址,客户端如果想用这个IP的话就发送一个同意使用这个IP的报文,然后服务器发送一个确认报文。这样客户端就成功地获得了IP地址,当租期超过1/2或者超过7/8时申请续租,这时候服务器如果同意续租就返回一个确认报文,如果不同意续租就返回一个不同意的报文他就续租失败。当客户端不用这个IP地址时可以主动向客户端申请释放。注意DHCP报文是封装到UDP中的。
DHCP服务器分配给DHCP客户IP地址是临时的,是有时间限制的,DHCP客户只能在一段时间之内使用这个IP。租用期可由客户端提出,租用期的数值由服务器做出决定。当超过租期的1/2时会更新租约。如果超过7/8你也要发送一个租约。
如果当前局域网没有DHCP服务器的话我可以在一个路由器上配置DHCP服务,那么主机就可以通过这个中继代理的路由器访问到其他网络上的DHCP服务器从而获得IP地址。
op代表了类型1是请求2是响应,htype是硬件地址类型如果是1就是以太网的MAC地址,hlen硬件地址的长度如果是以太网就是6个字节。hops跳数如果采用了DHCP中继那么每经过一跳跳数就会+1。
下面来看一下DHCP的消息类型放在options中。