从其浏览器中输入http://www.baidu.com,直到baidu的网站首页显示在其浏览器中,请你分析在此过程中,按照TCP/IP 参考模型,从应用层到网络接口层都用到了哪些协议,每个协议所起的作用是什么?

应用层:NAT网络地址转换;DNS域名解析;HTTP超文本传输协议

运输层:TCP传输控制协议,TCP连接,可靠传输

网络层:IP协议,数据报服务,路由选择;ARP地址解析;ICMP网际控制报文协议,查询与差错报告

NAT网络地址转换:

如果 DHCP 服务器为客户端提供了一个 IP 地址,那么这个地址可能不是一个“公共的”、在Internet上唯一的IP地址。只要路由器自己具有在Internet上有效的IP地址,那么路由器就可以成为网络客户端的代理,从客户端接收请求,向Internet地址空间转发这个请求,进而接收来自于Internet地址空间的响应。

NAT具有节省Internet地址以及私有网络固有的安全性这两大优点。当本地计算机需要连接Internet资源时,NAT设备会替这台计算机进行连接。所有从 Internet 资源发送来的数据包都会被转换成本地网络的地址格式,接着被发送给发起连接的本地计算机。对外部世界而言,NAT设备看上去就好像是一台单独连接在Internet上的主机。即使攻击者知道本地网络上计算机的地址,也不能够打开与本地网络的连接,这是因为本地网络的寻址模式与Internet地址空间是不相关的。

DNS域名解析:

它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。

HTTP超文本传输协议:

http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;

HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。

TCP协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

TCP协议是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

  • 数据正确性与合法性上,TCP用一个校验和函数来检验数据是否有错误,在发送和接收时都要计算校验和;同时可以使用md5认证对数据进行加密。

  • 保证可靠性上,采用超时重传和捎带确认机制。

  • 流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。

在拥塞控制上,采用广受好评的TCP拥塞控制算法(也称AIMD算法)。该算法主要包括四个主要部分:

(1)慢启动

每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进入慢启动阶段。进入慢启动后,TCP实体将拥塞窗口的大小初始化为一个报文段,即:cwnd=1。此后,每收到一个报文段的确认(ACK),cwnd值加1,即拥塞窗口按指数增加。当cwnd值超过慢启动阐值(sshterhs)或发生报文段丢失重传时,慢启动阶段结束。前者进入拥塞避免阶段,后者重新进入慢启动阶段。

(2)拥塞避免

在慢启阶段,当cwnd值超过慢启动阐值(ssthresh)后,慢启动过程结束,TCP连接进入拥塞避免阶段。在拥塞避免阶段,每一次发送的cwnd个报文段被完全确认后,才将cwnd值加1。在此阶段,cwnd值线性增加。

(3)快速重传

快速重传是对超时重传的改进。当源端收到对同一个报文的三个重复确认时,就确定一个报文段已经丢失,因此立刻重传丢失的报文段,而不必等到重传定时器(RTO)超时。以此减少不必要的等待时间。

(4)快速恢复

快速恢复是对丢失恢复机制的改进。在快速重传之后,不经过慢启动过程而直接进入拥塞避免阶段。每当快速重传后,置sshtesrh=cwnd/2、ewnd=ssthresh+3。此后,每收到一个重复确认,将cwnd值加1,直至收到对丢失报文段和其后若干报文段的累积确认后,置cwnd=ssthesrh,进入拥塞避免阶段。

IP协议

IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务

ARP地址解析协议

ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;

ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

ICMP网际控制报文协议

ICMP(Internet Control Message Protocol)Internet控制报文协议,它是一种面向无连接的协议,用于传输出错报告控制信息。

它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

网站访问全过程涉及的网络协议详解相关推荐

  1. nbns协议_网络协议详解1 - NBNS

    NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...

  2. TCP/IP网络协议详解

    一. 计算机网络体系结构分层 一图看完本文 计算机网络体系结构分层 计算机网络体系结构分层 Frame:   物理层的数据帧概况 Ethernet II: 数据链路层以太网帧头部信息 Internet ...

  3. 网络协议详解 :UDP

    目录 网络存在的问题 网络传送的不可靠 网络不安全 传输层的UDP UDP工作机制 应用层观察UDP的特点 缺点 优点 UDP Header结构 checksum(校验和) UDP接收缓冲区 缓冲区概 ...

  4. 【网络协议详解】——GNS3的使用(学习笔记)

  5. 【网络协议详解】——IPv6协议(学习笔记)

    目录

  6. 趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心

    趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心 1:CDN:你去小卖部取过快递么? 使用"中间仓库"来优化 网络中的"就近配送" ...

  7. 【Java网络编程与IO流】Http协议详解以及面试有关问题

    HTTP协议详解以及面试有关题目 1 HTTP请求 一个HTTP请求报文由请求行.请求头部.空行和请求数据四个部分组成. 1.1 请求行 请求行中有请求方法字段.URL字段和HTTP协议版本3个字段组 ...

  8. Linux网络-UDP/TCP协议详解

    Linux网络-UDP/TCP协议详解 零.前言 一.UDP协议 二.TCP协议 1.应答机制 2.序号机制 3.超时重传机制 4.连接管理机制 三次握手 四次挥手 5.理解CLOSE_WAIT状态 ...

  9. 入木三分学网络第一篇--VRRP协议详解-----(1)

    原帖:http://blog.chinaunix.net/uid-11654074-id-2857384.html 目录 入木三分学网络第一篇--VRRP协议详解 1. VRRP产生背景及应用环境 1 ...

最新文章

  1. 基于深度学习OpenCV与python进行字符识别
  2. tfs连不上团队资源管理器问题
  3. 网络推广关键词布局仍需网络推广专员时刻“运筹帷幄”
  4. HDU6184【Counting Stars】(三元环计数)
  5. 【Git】Git-常用命令备忘录(一)
  6. Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)
  7. ORACLE10g R2及PATH官方下载地址
  8. leetcode 113. 路径总和 II(Path Sum II)
  9. 用OC和Swift一起说说二叉树
  10. Google强化学习框架SEED RL环境部署
  11. 今天的我从来没想到的飞鸽传书2009
  12. 萤火虫pte小程序_【PTE战报】84炸的Maggie,RS试试这样入手开始练习
  13. svn迁移到git_SVN到GIT的迁移完整教程
  14. RedHat 救援模式下排错
  15. 计算机包括台式机和笔记本,外星人Area-51M游戏笔记本评测:比台式机更强悍的笔记本...
  16. idea任务栏图标变白色,桌面快捷方式变白色
  17. 如何根据视频的宽屏与竖屏来排序?
  18. 平均年薪 50 万的无人驾驶工程师,需要掌握这 5 大关键技术
  19. 深度学习(6):图像超分辨率(Image Super Resolution)重建
  20. 云计算 python PXE+KS无人值守安装

热门文章

  1. ChinaSoft 论坛巡礼 | 软件工程教学案例交流与竞赛
  2. Android高版本使用DocumentFile读写外置存储的问题
  3. 汽车控制系统matlab,汽车控制系统建模与仿真(肖仁鑫)-中国大学mooc-题库零氪
  4. mybatis-plus 自动生成代码
  5. java保姆级教程—— 1.什么是游戏
  6. 高温大量程热流传感器结构及信号调理电路的设计
  7. 1833 雪糕的最大数量(排序)
  8. GitHub高赞!PyTorch Lightning 你值得拥有!
  9. 第一章:电子商务的概述
  10. 使用豆瓣api查找本地电影评分来决定看什么电影