应用层

应用层常用的协议和各自对应的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电话(中途丢几个包也不影响整体数据表现的)

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

【网络】 应用&传输层笔记的更多相关文章

  1. UNIX网络编程---传输层:TCP、UDP、SCTP(二)

    UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...

  2. Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)

    catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...

  3. 网络协议学习笔记(四)传输层的UDP和TCP

    概述 传输层里比较重要的两个协议,一个是 TCP,一个是 UDP.对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议.由于面试的时候,这两个协议经常会被放在一起问,因而我在 ...

  4. 图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用

     图解 TCP/IP  第六章 TCP与UDP   笔记6.1 传输层的作用   传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码.根据端口号,就可以识别在传输层上一层的应用程 ...

  5. [计网笔记] 传输层---TCP 传输层思维导图

    传输层思维导图 TCP笔记 为什么是三次握手和四次挥手 https://blog.csdn.net/baixiaoshi/article/details/67712853 [问题1]为什么连接的时候是 ...

  6. ASP.NET知识总结(1.网络传输层)

    1.网络传输层 1应用层(HTTP.FTP.SMTP)报文Message 2传输层(TCP.UDP)报文段Segment,为运行在不同主机上的应用程序进程间提供数据 传输服务.通过套接字(Socket ...

  7. 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结

    引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...

  8. 计算机网络 学习笔记-传输层:TCP协议简介

    概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面 ...

  9. Android网络编程系列 一 TCP/IP协议族之传输层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...

随机推荐

  1. Android线上Bug热修复分析

    针对app线上修复技术,目前有好几种解决方案,开源界往往一个方案会有好几种实现.重复的实现会有造轮子之嫌,但分析解决方案在技术上的探索和衍变,这轮子还是值得去推动的 关于Hot Fix技术 Hot F ...

  2. PHP simpleXML文件编程

    SimpleXML simpleXML该技术的核心思想是以面向对象的方式来操作xml文件 <?php //simplexml文件 讲所有的元素转成对象 $library=simplexml_lo ...

  3. Java Web项目中缺少Java EE 6 Libraries怎么添加

    Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...

  4. JDBC连接池-自定义连接池

    JDBC连接池 java JDBC连接中用到Connection   在每次对数据进行增删查改 都要 开启  .关闭  ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例 pack ...

  5. 启动就加载(一)----注解方式实现的。static项目启动的时候就加载进来(一般用于常用参数)

    一,案例 1.1,图片分析 1.2,代码 1.2.1,编写加载系统参数的servlet public class SysInitServlet extends HttpServlet { public ...

  6. VS2010插件

    Highlight all occurrences of selected words

  7. es6学习笔记--let和const

    今天学习了es6中的let和const命令,借此整理一下笔记. let : let 和 var 的声明方式一样,但有 var 比不上的优点.下面用 var 和 let 的例子来加深对 let 的理解. ...

  8. (luogu P1383)高级打字机

    高级打字机 题目链接 https://www.luogu.org/problemnew/show/P1383 背景 无聊中.. 随便在luogu上rand到了一道题 从此走上不归路 主席树是我暑假的时 ...

  9. 【BZOJ1924】【SDOI2010】所驼门王的宝藏(Tarjan,SPFA)

    题目描述 在宽广的非洲荒漠中,生活着一群勤劳勇敢的羊驼家族.被族人恭称为"先知"的Alpaca L. Sotomon是这个家族的领袖,外人也称其为"所驼门王". ...

  10. css系统学习网站

    最近系统学习一下css样式,找到一个不错的网站.http://css.doyoe.com/