应用层

应用层常用的协议和各自对应的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. vscode格式化Vue出现的问题

    一.VSCode中使用vetur插件格式化vue文件时,js代码会自动加上冒号和分号 本来就是简写比较方便舒服,结果一个格式化回到解放前 最后找到问题原因: 首先,vetur默认设置是这个样的.也就是 ...

  2. zTree实现获取当前选中的第一个节点在同级节点中的序号

    zTree实现获取当前选中的第一个节点在同级节点中的序号 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTr ...

  3. Linux显示更新十次后退出

    Linux显示更新十次后退出 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ top -n 10 top - 19:19:21 up 48 min, 2 use ...

  4. hibernate学习(四)hibernate的一级缓存&快照

    缓存:提高效率 硬件的 CPU缓存   硬盘缓存   内存 软件的  io流缓存 hibernate  的一级缓存   也是为了操作数据库的效率. 证明一级缓存在  : Person p=sessio ...

  5. windows下安装MongoDB进度条不动

    windows 下安装MongoDB, 在 Installing MongoDB Compass...(this may take a few minutes) 一步,会停留很长时间,点击取消可能也会 ...

  6. PhotoShop制作简单的文字动画--多媒体技术与应用

    下面是最终实现的效果图: 1.新建图像,设置图像属性如下所示. 2.使用[横排文字工具]在背景图像上打上文字内容 3.[图层]——>[图层式样]——>[渐变叠加] 出现“图层样式”面板 4 ...

  7. python urllib和urllib3包使用

    urllib包 urllib是一个包含几个模块来处理请求的库.分别是: urllib.request 发送http请求 urllib.error 处理请求过程中,出现的异常. urllib.parse ...

  8. JavaScript保留关键字2。

    一些不做解释的关键字是在js中预留的东西. abstract 抽象  . arguments  参数 标识符arguments是指向实参对象的引用,实参对象是一个类数组对象. boolean 布尔值. ...

  9. 【Luogu3804】【模板】后缀自动机(后缀自动机)

    [Luogu3804][模板]后缀自动机(后缀自动机) 题面 洛谷 题解 一个串的出现次数等于\(right/endpos\)集合的大小 而这个集合的大小等于所有\(parent\)树上儿子的大小 这 ...

  10. 【网络流24题】最长k可重区间集(费用流)

    [网络流24题]最长k可重区间集(费用流) 题面 Cogs Loj 洛谷 题解 首先注意一下 这道题目里面 在Cogs上直接做就行了 洛谷和Loj上需要判断数据合法,如果\(l>r\)就要交换\ ...