计算机网络之TCP/IP协议栈
来源:互联网 发布:电影矩阵 编辑:程序博客网 时间:2024/05/17 00:55
应用层 HTTP FTP TELNET, SMTP, DNS, ECHO, NTP, SNMP, BOOTP...
传输层TCP UDP
互联层 IP ICMP [ARP IGMP]
网络接口层 以太网 令牌环 FDDI
从服务的观点看即
应用服务
可靠的传输服务
无连接交付服务
不同计算机上可能运行的协议:
- 一个简单的路由器上可能会实现ARP, IP, ICMP, UDP, SNMP, RIP。
- WWW用户端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。
- 一台用户电脑上还会运行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NTP。
- 无盘设备可能会在固件比如ROM中实现了ARP, IP, ICMP, UDP, BOOT, TFTP (均为面向数据报的协议,实现起来相对简单)
二,网络接口层:
该层中的协议提供了数据传送的方法,使得系统可以通过连接的网络将数据传送到其它设备,并定义了如何利用网络来传送IP数据报。
物理网络上传输的单元是一个包含首部和数据的祯,首部包含的是物理源地址。
2.1
2.7
三,互联层:
3.1 IP
3.1.1 IP主要完成以下任务:
给远端主机的数据报指定路由。
3.1.2 IP数据报
IP报格式
版本 首部长度 服务类型 总长度
标识 标志 片偏移量
寿命 协议 首部校验和
源IP地址
目的IP地址
IP选项 填充
数据
...3.1.3 分片与MTU
3.1.4 路由
3.2 ICMP
3.3 ARP
要为数据报确定一个目的地址,就必须检查ARP缓存表。
ARP工作流程:
解释本地IP地址:
(1)当一台主机要与别的主机通信时,初始化ARP请求。当该IP断定IP地址是本地时,源主机在ARP缓存中查找目标主机的硬件地址。
(2)要是找不到映射的话,ARP建立一个请求,源主机IP地址和硬件地址会被包括在请求中,该请求通过广播,使所有本地主机均能接收并处理。
(3)本地网上的每个主机都收到广播并寻找相符的IP地址。
(4)当目标主机断定请求中的IP地址与自己的相符时,直接发送一个ARP答复,将自己的硬件地址传给源主机。以源主机的IP地址和硬件地址更新它的ARP缓存。源主机收到回答后便建立起了通信。
解析远程IP地址
不同网络中的主机互相通信,ARP广播的是源主机的缺省网关。
目标IP地址是一个远程网络主机的话,ARP将广播一个路由器的地址。
(1)通信请求初始化时,得知目标IP地址为远程地址。源主机在本地路由表中查找,若无,源主机认为是缺省网关的IP地址。在ARP缓存中查找符合该网关记录的IP地址(硬件地址)。
(2)若没找到该网关的记录,ARP将广播请求网关地址而不是目标主机的地址。路由器用自己的硬件地址响应源主机的ARP请求。源主机则将数据包送到路由器以传送到目标主机的网络,最终达到目标主机。
(3)在路由器上,由IP决定目标IP地址是本地还是远程。如果是本地,路由器用ARP(缓存或广播)获得硬件地址。如果是远程,路由器在其路由表中查找该网关,然后运用ARP获得此网关的硬件地址。数据包被直接发送到下一个目标主机。
(4)目标主机收到请求后,形成ICMP响应。因源主机在远程网上,将在本地路由表中查找源主机网的网关。找到网关后,ARP即获取它的硬件地址。
(5)如果此网关的硬件地址不在ARP缓存中,通过ARP广播获得。一旦它获得硬件地址,ICMP响应就送到路由器上,然后传到源主机四,传输层:
4.1 TCP
4.1.1
TCP是一种可靠的、面向连接的、字节流协议,它利用端到端错误检测与纠正功能提供可靠的数据传输服务,因为它能验证数据在网络上是否以合适的序列正确地传输;
4.1.2 TCP报文段
源端口 目的端口
序号
确认号
首部长度 保留未用 码元比特 窗口
校验和 紧急指针
选项 填充
数据
...
4.1.3
三次握手
四次握手
4.1.4
滑动窗口
4.2 UDP
UDP是一个不可靠的无连接数据报协议,就像IP一样,它能为应用程序提供低开销的无连接数据报传输服务。
五,应用层:
推荐协议:
- TELNET (Teletype over the Network, 网络电传) ,通过一个终端(terminal)登陆到网络(运行在TCP协议上)。
- FTP (File Transfer Protocol, 文件传输协议) ,由名知义(运行在TCP协议上)
- SMTP (Simple Mail Transfer Protocol,简单邮件传输协议) ,用来发送电子邮件(运行在TCP协议上) 。
- DNS (Domain Name Service,域名服务) ,用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上) 。
- ECHO (Echo Protocol, 回绕协议) ,用于查错及测量应答时间(运行在TCP和UDP协议上) 。
- NTP (Network Time Protocol,网络时间协议) ,用于网络同步(运行在UDP协议上) 。
- SNMP (Simple Network Management Protocol, 简单网络管理协议) ,用于网络信息的收集和网络管理。
- BOOTP (Boot Protocol,启动协议) ,应用于无盘设备(运行在UDP协议上)。
6.1 IPv4的缺陷
地址只有32位,IP地址空间有限;
不支持服务等级(Quality of Service, Qos)的想法,无法管理带宽和优先级,故而不能很好的支持现今越来越多的实时的语音和视频应用。因此IPv6 (IP Version 6, IP版本六) 浮出海面,用以取代IPv4
http://www.softhouse.com.cn/news/show/4281.html
http://blog.icxo.com/read.jsp?aid=55484&uid=19437
- 计算机网络之TCP/IP协议栈
- 计算机网络之tcp/ip协议
- 计算机网络基础之TCP/IP网络协议
- 计算机网络之TCP/IP协议族
- 一、计算机网络之TCP/IP协议
- 计算机网络 TCP/IP协议
- 计算机网络---TCP/IP协议
- 计算机网络之TCP/IP协议(网络通讯协议)
- 第05章 计算机网络 之 TCP/IP协议族
- TCP/IP协议栈 之 TCP协议
- TCP/IP协议栈 之 IP协议
- 计算机网络五层TCP/IP协议栈小结
- 串行通信 计算机网络和TCP/IP协议
- 计算机网络-TCP/IP协议相关知识点
- 计算机网络 TCP/IP协议 三次握手
- 计算机网络中TCP、IP协议的对比
- 计算机网络之IP协议族
- 计算机网络之网际IP协议
- 一个c#读取扫雷内存的demo
- 怎样做好项目的配置管理
- C#分别得到当前月的第一天和最后一天
- 梦泪冰心雨,花残月星沙
- 开博的第一天,很兴奋!
- 计算机网络之TCP/IP协议栈
- 用js实现3D页面
- 高质量C/C++编程总结-与零值比较
- 俞敏洪在2008年北大开学典礼的演讲
- 天乙论坛v8 web.xml 分析
- 记者的游戏
- oracle分析函数
- 疯狂JAVA讲义---第十二章:Swing编程(一)基本组件
- Modern C++ Design 笔记 第八章 Object Factories