首页 > 代码库 > 【网络】 应用&传输层笔记

【网络】 应用&传输层笔记

应用层

应用层常用的协议和各自对应的TCP/UDP端口:

  DNS  TCP/UDP  53

  HTTP  TCP  80

  SMTP  TCP  25

  POP  UDP  110

  Telnet  TCP  23

  DHCP  UDP  67

  FTP  TCP  20和21

 关于端口号的分配可以提一下:

  公认端口:0-1023

  已注册端口:1024-49151

  动态&私有端口:49152-65535

 

下面是一些常用的应用层协议略解

  1. DNS(Domain Name System)

  主要功能:将对用户友好的域名转化为后台服务器的IP地址

  DNS客户端本身也是一个服务,在配置网络连接的时候,系统会要求用户提供DNS服务器。对于家庭个人电脑而言,大多数时候ISP都会提供。在DOS命令行键入nslookup可以查看到当前网络状况下DNS服务器的配置信息。DNS的解析过程是这样的。DNS服务器上有一个named守护进程监听请求,当收到某个客户端发来的请求时,服务器先检查自身记录,查找看本次请求的域名可不可以凭自身的力量解析。如果不行那就要连接到其他的DNS Server,当得到结果之后DNSServer会向客户端返回结果,同时将本次得到的域名和IP地址之间的对应关系存储下来,如果下次还有类似的请求那么就可以凭自身记录快速处理了。

  关于DNS Server的层级构造:DNS服务器采用树状结构来实现检索目标。一台根服务器记录了顶级服务器的信息(比如它们的IP地址)。顶级服务器中,每一个服务器各自管理一个顶级域名(比如.com)。服务器中记录的信息是二级服务器的信息。二级服务器中维护的是顶级域名+二级域名的组合,其记录信息是三级服务器的信息……以此类推,只有最下层的服务器才会记录一个完整域名和IP地址之间的映射关系。图示:

技术分享

  对于这个实例中的mail.cisco.com这个域名来说,保存过其相关所有信息的DNS服务器,包括跟服务器,.com的一级服务器,cisco.com的二级服务器,mail.cisco.com的三级服务器都叫做这个域名的主域名服务器。

 

  2. HTTP 和 WEB服务

  通常情况下通过浏览器访问某个文件的过程:

  用户在浏览器地址栏中输入一个URL,浏览器解析URL得到三部分分别是协议或方案(http://)、域名、请求文件的路径。浏览器向DNS请求将域名转化为IP地址,然后根据HTTP协议的要求向这个地址发送一个GET请求,要求访问相关文件。服务器收到相关请求之后将相关文件的内容传送给请求发起方,然后浏览器解释得到的文件内容并显示页面。

  HTTP框架内的会话发起种类有很多种,其中最常用的就是GET和POST。区别就不多啰嗦了,懂点web的人都懂的。除了这两个还有像PUT,DELETE这类的。

 

  3. POP,SMTP协议以及MTA,MDA,MUA进程

  对用户而言,POP协议用来规定接收邮件的规则,SMTP用来规定发送邮件的规则,所以一般邮件服务器和客户机都肯定要同时支持两种协议。MUA进程就是运行在客户机上,用来实现这两个协议的程序。相对的邮件服务器上则是靠MTA和MDA两个进程来实现收发邮件协议的。一个邮件服务器首先用MTA从客户端的MUA或者另一台服务器的MTA那里获得邮件,查看邮件的宛先,如果这个地址维护在本地服务器上,那么就把邮件转送给MDA,由服务器的MDA进程负责分发;如果没有在本地服务器上找到相关目的地址,那么就用MTA把这个邮件转发给另一台服务器的MTA。

 

  4. DHCP协议

  DHCP服务器的功能是提供自动分配的IP,子网掩码,缺省网关等网络层的参数。现在一般家庭里都有无线路由器了,无线路由器中就自带了一个DHCP服务器的。如果没有接入无线的话那么DHCP服务由ISP提供。

  采用DHCP虽然能够快速自动地分配网络参数,让管理接入接出频繁的网络方便很多,但是也有一些缺点,比如我们需要网关,交换机这类网络设备的IP得是固定IP比较好,另外DHCP不对接入的设备有安全性检查导致安全性也会降低一些。

传输层

  传输层的作用主要有:

  跟踪各个会话(通过在PDU中写入端口号实现)

  将数据分段(适应传输方式,提高效率和容错性)

  在接收端重组数据段

  标识应用程序

  流量控制

  错误回复(通过重传)

  开始会话

  根据应用层的不同要求而选择不同的协议(TCP/UDP)

  

  客户端发送请求的时候传输层程序会为这个数据段随机选择动态分配的端口,比如在DOS中键入netstat -an可以看到状态为ESTABLISHED的会话,本地的地址后面的端口都是一个很大的数,就是随机分配来的。而一般服务端的话为了让客户端能够方便地找到服务,其肯定是一个静态的固定端口号。ip:port这样的形式表示的一个通信地址也被称为套接字。

  

  TCP和UDP两种协议的不同:

  TCP是可靠传输,UDP是尽力传输。TCP在其PDU的报头中有序列号等信息,占20个字节。UDP则没有这部分信息,其报头只占8个字节。对于TCP而言,它会在发送数据之后跟踪数据的到达情况,确认是否需要重发。同时TCP还在接收到数据之后按照序列号的顺序重组数据,而这两项功能UDP是没有的。相对而言TCP消耗的网络成本更大一些因为它传递更多的数据且需要在会话之前先握手连接(作为检测到达情况的准备工作),而UDP的成本小一些。基于TCP和UDP的代表的应用有:

  TCP  web浏览器,电子邮件,文件传输

  UDP  视频音频流,IP电话(中途丢几个包也不影响整体数据表现的)

哎…那啥。。当时实在是过于青涩,有很多东西觉得没必要记录的记了下来,还错了很多。。我都不太想继续整理下去了【捂脸】

【网络】 应用&传输层笔记