linux内核学习之网络篇——TCP/IP概述
2012-09-26 21:20
507 查看
1.ISO 参考模型
因特网协议栈中的层
人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。
另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议和生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:
通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。
其中,每层都只能与紧邻的层通信。下面介绍一下各层执行的任务
网络接口层,主要是负责将信息从一台计算机传输到远程的计算机。将数据流划分为定长的帧。在我们生活中,它主要是包括网络物理介质 网线,网卡,网卡有个全球唯一的的MAC地址。
网络互联层的主要任务就是找到一条线路让两台计算机能互联。网络层也负责其他链接信息。比如传输的数据划分定长。网络层还分配网络中唯一的的地址,就是我们耳熟的IP地址.
传输层,计算机之间建立通信链接还远远不够,该层的任务就是控制应用程序之间的数据传输。就是TCP和UDP模型。而我们所说的socket的编程,就是ip+tcp端口才能唯一确定两个应用程序之间互相通信。
应用层就是面向应用的一层了。应用层主要是负责两个应用程序传输实际的数据内容了。
给出一个比较直接的数据流图,
下节简单介绍一些socket编程基本函数。
更多文章,欢迎访问http://blog.csdn.net/wallwind
来源: <可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑>
因特网协议栈中的层
人们已经进行了一些讨论关于如何将TCP/IP参考模型映射到到OSI模型。由于TCP/IP和OSI模型组不能精确地匹配,还没有一个完全正确的答案。
另外,OSI模型下层还不具备能够真正占据真正层的位置的能力;在传输层和网络层之间还需要另外一个层(网络互连层)。特定网络类型专用的一些协议应该运行在网络层上,但是却运行在基本的硬件帧交换上。类似协议的例子有地址解析协议和生成树协议(用来保持冗余网桥的空闲状态直到真正需要它们)。然而,它们是本地协议并且在网络互连功能下面运行。不可否认,将两个组(更不用说它们只是运行在如ICMP等不同的互连网络协议上的逻辑上的网络层的一部分)整个放在同一层会引起混淆,但是OSI模型还没有复杂到能够做更好的工作。
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:
下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:
7 | 应用层 | 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP |
6 | 表示层 | 例如XDR、ASN.1、SMB、AFP、NCP |
5 | 会话层 | 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets |
4 | 传输层 | 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL |
3 | 网络层 | 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25 |
2 | 数据链路层 | 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP |
1 | 实体层 | 例如线路、无线电、光纤 |
4 | 应用层 (OSI 5 到 7层) | 例如HTTP、FTP、DNS (如BGP和RIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分) |
3 | 传输层 (OSI 4层) | 例如TCP、UDP、RTP、SCTP (如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分) |
2 | 网络互连层 (OSI 3层) | 对于TCP/IP来说这是因特网协议(IP) (如ICMP和IGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上) |
1 | 网络接口层 (OSI 1和2层) | 例如以太网、Wi-Fi、MPLS等。 |
网络接口层,主要是负责将信息从一台计算机传输到远程的计算机。将数据流划分为定长的帧。在我们生活中,它主要是包括网络物理介质 网线,网卡,网卡有个全球唯一的的MAC地址。
网络互联层的主要任务就是找到一条线路让两台计算机能互联。网络层也负责其他链接信息。比如传输的数据划分定长。网络层还分配网络中唯一的的地址,就是我们耳熟的IP地址.
传输层,计算机之间建立通信链接还远远不够,该层的任务就是控制应用程序之间的数据传输。就是TCP和UDP模型。而我们所说的socket的编程,就是ip+tcp端口才能唯一确定两个应用程序之间互相通信。
应用层就是面向应用的一层了。应用层主要是负责两个应用程序传输实际的数据内容了。
给出一个比较直接的数据流图,
下节简单介绍一些socket编程基本函数。
更多文章,欢迎访问http://blog.csdn.net/wallwind
来源: <可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑>
相关文章推荐
- TCP/IP学习笔记之一 --- 概述
- TCP-IP学习笔记四:NIO的网络编程-多线程实例
- 转载 TCPIP学习笔记之概述
- TCP/IP各层协议、工作设备、网络地址划分总结 《TCP-IP详解卷1:协议》读书笔记一 概述(内附思维导图)
- 【网络学习】TCP/IP的三次握手,四次分手、DDOS攻击
- TCP/IP学习(一) -- 网络分层(OSI分层和TCP/IP分层)
- TCP-IP学习笔记(三)——概述
- 19. JAVA 网络编程 Part 1 (IP与InetAddress类、URL与URLConnection类、URLEncoder与URLDecoder类、TCP&UDP)---- 学习笔记
- TCP/IP详解--学习笔记(9)-TCP协议概述
- linux内核学习之网络篇——IP和TCP结构体源码
- TCP/IP详解--学习笔记(9)-TCP协议概述
- 菜鸟学习历程【22】网络编程、TCP/IP、TCP与UDP
- TCP,IP详解,卷一:协议学习笔记之第一章概述
- tcp/ip学习第一步:网络中两台主机进行通讯,协议栈是如何处理数据报的.
- 【TCP_IP学习笔记】(1)网络协议简介
- TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接
- TCP/IP网络编程 学习笔记_1 --网络编程入门
- TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接
- TCP-IP学习笔记(一)——概述
- TCP/IP各层协议、工作设备、网络地址划分总结 《TCP-IP详解卷1:协议》读书笔记一 概述(内附思维导图)