1. 协议的概念

(1)计算机网络中实现通信必须有一些约定。如对速率、传输代码、代码结构、传输控制步骤和出错控制等约定,这些约定即被称为通信协议

(2)在两个节点之间要成功地进行通信,两个节点之间必须约定使用共同的“语言”,这些被通信各方共同遵守的约定、语言、规则被称为协议

(3)在Internet中,最为通用的网络协议是TCP/IP协议。

2. 网络分层模型

(1)应用层:提供用户接口,特指能够发起网络通信的应用程序,如客户端程序、QQ、MSN、浏览器等,服务器程序有Web服务器、邮件服务器、流媒体服务器等。

(2)表示层:使用何种编码方式。比如要传输的数据使用ASCII编码、Unicode编码还是二进制文件,是否要加密和压缩。发送端和接收端程序必须使用相同的编码方式,才能正确显示,否则就产生乱码。

(3)会话层:通信的应用程序之间建立、给维护和释放面向用户的连接。通信的应用程序之间建立会话,需要传输层建立1个或多个连接。

(4)传输层:负责在通信的两个计算机之间建立连接,实现可靠或不可靠的数据通信,能够实现发送端和接收端的丢包重传,流量控制。

(5)网络层:路由器查看数据包目标IP地址,根据路由表为数据包选择路径。路由表中的条目可以人工添加(静态路由),也可以动态生成(动态路由)

(6)数据链路层:不同的网络类型,发送数据的机制不同,数据链路层就是将数据包封装成能够在不同网络传输的帧,能够进行差错检查。但不纠错,检测出错误丢掉该帧。

(7)物理层:该层规定了网络设备接口标准、电压标准。尽可能地通过频分复用、时分复用技术在通信链路上更快的传输数据

3. TCP/IP协议族

(1)TCP/IP实际是一个一起工作的通信家族,为网际数据通信提供通路。

(2)TCP/IP协议族大体上分为三个部分

  ①Internet协议(IP):

  ②传输控制协议(TCP)和用户数据报文协议(UDP)

  ③处理TCP和UDP之上的一组协议专门开发的应用程序。它们包括:远程登录(telnet)、文件传送协议(ftp)、域名服务(dns)和简单的邮件传送程序(smtp)等许多协议。

(3)网络层协议

  ①internet协议(IP):该协议设计成互联分组交换通信,以形成一个网际通信环境,它负责在源主机和目的主机之间传输来自较高层次软件的秋为数据报文的数据块,它在源和目标之间提供非连接型传递服务。

  ②网际控制报文协议(ICMP):icmp实际上并不是IP层部分,但直接同IP层一起工作,报告网络上的某些出错情况,允许网际路由器传输差错信息或测试报文。

  ③地址识别协议(ARP):实际上也不是网络层的部分,它处于IP和数据链路层之间,它是在32位IP地址和48位局域网物理地址之间执行翻译的协议。

(4)传输层协议

  ①传输控制协议(TCP)可靠的、面向连接的传输层服务,主要功能有:监听输入对话建立请求、请求别一网络站点对话、可靠的发送和接收数据和适度的关闭对话等。

  ②用户数据报文协议(UDP)提供不可靠的、非连接型传输层服务。它允许在源和目标主机之间传递数据而不必在传递数据之前建立对话。同时也不提供TCP使用的端对端差错校验功能。主要用于那些非连接型的应用。如名字服务、网络管理、视频点播和网络会议等。

(5)应用层协议

  ①Telnet:远程登录 ②FTP和TFTP:文件传送协议;

  ③SMTP:简单文件传送协议 ④DNS:域名服务

最新文章

  1. [POJ 1155] TELE (树形dp)
  2. WordPress非插件添加文章浏览次数统计功能
  3. AltiumDesignerSummer9Build9.3.1.19182破解图文教程
  4. 包装FTPWebRequest类
  5. poj 3694双联通缩点+LCA
  6. loadrunner下载资源时步骤下载超时 (120 seconds) 已过期
  7. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包
  8. Lisp小程序,大作用,不该放弃!
  9. leaflet实用插件整理
  10. LB层到Real Server之间访问请求的响应时间及HTTP状态码监控及报警设置
  11. 通过pyqt5实现俄罗斯方块游戏例子
  12. 【做题】Codeforces Round #436 (Div. 2) F. Cities Excursions——图论+dfs
  13. 使用ddns搭建免费服务器
  14. 侯捷STL课程及源码剖析学习2: allocator
  15. Json.NET序列化后包含类型,保证序列化和反序列化的对象类型相同(转载)
  16. 基于Python的信用评分卡模型分析(一)
  17. C#怎么做系统托盘
  18. java中方法调用在内存中的体现
  19. MySQL基础命令
  20. 将django的admin后台界面改为中文

热门文章

  1. Swift中获取系统语言
  2. 《Hands-On Machine Learning with Scikit-Learn&TensorFlow》读书笔记
  3. 框架流程图绘制工具OmniGraffle 7 for Mac
  4. Vue.js使用v-show和v-if的注意事项
  5. 微信小程序代码片段
  6. [Algorithm] A nonrecursive algorithm for enumerating all permutations of the numbers {1,2,...,n}
  7. 安卓手机文件管理器简单横向评比 - imsoft.cnblogs
  8. iOS7,iOS8和iOS9的区别
  9. 51Nod:1134 最长递增子序列
  10. Win8被禁购信息战由暗到明