TCP-IP协议解析笔记 卷一:协议 ----概要

一、概要简述
本阶段只做简单的概念描述,为后面针对性学习打个基础,有基础的可以跳过。

  1. TCP-IP 分层

TCP-IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。另外TCP-IP是一个开放且易维护的廉价(花很少的钱就可以维护)系统,因为它又被称作“全球互联网”或“因特网(internet )”的基础。
TCP-IP协议通常被认为是一个四层协议系统,即:应用层、运输层、网络层、链路层,每一层负责不同的功能:

名称功能例子
应用层处理特定应用程序细节应用程序如:Telnet、FTP、SMTP、SNMP
运输层提供端到端的通信服务TCP(传输控制协议)、UDP(用户数据报协议)
网络层主要处理网络中的各种活动IP协议(网际协议)、ICMP协议(Internet互联网控制报文协议)、IGMP协议(Internet组管理协议)
链路层或称数据链路层(网络接口层)通常包括驱动程序和对应网卡,他们一起处理与电缆等物理接口细节ARP、RARP

问题:那我们常说的OSI网络七层与TCP/IP四层协议又有什么关系呢?
在网络历史的早期,国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)共同出版了开放系统互联的七层参考模型。一台计算机操作系统中的网络过程包括从应用请求(在协议栈的顶部)到网络介质(底部) ,OSI参考模型把功能分成七个分立的层次。下图表示了OSI分层模型。

名称层级功能描述例子
第七层应用层包括标识通信伙伴、定义资源的可用性和同步通信,应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的API(Application Program Interface,应用程序接口)组成,这类应用软件程序超出了OSI模型的范畴。
第六层表示层表示层提供多种功能用于应用层数据编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式。
第五层会话层会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现
第四层传输层传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复。tcp、udp
第三层网络层网络层负责在源和终点之间建立连接。它一般包括网络寻径,还可能包括流量控制、错误检查等。IP路由器
第二层数据链路层通过物理网络链路提供可靠的数据传输。不同的数据链路层定义了不同的网络和协议特征,其中包括物理编址、网络拓扑结构、错误校验、帧序列以及流控。
第一层物理层将信息编码成电流脉冲或其它信号用于网上传输RS-232规范、10BASE-T的曼彻斯特编码以及RJ-45

那么OSI七层与TCP-IP四层对应关系又是什么呢?个人认为,OSI模型更像一个大而全的宏观上的协议系统,它包含了硬件相关和协议相关的定义。而TCP/IP更侧重与通信协议的核心描述,它并不包含物理层面的东西,因此可以把TCP-IP看成OSI的子集。它们的大致对应关系如下图
OSI七层与TCP/IP四层对应关系
2. IP地址和域名
互联网上的每个接口必须有一个唯一的Internet地址(也称作IP地址),IP地址长度为32bit。通常写成四个十进制的数,其中
每个整数对应一个字节,这种表示方法称作“点分十进制表示法( Dotted decimal notation)”。例如我的IP地址是:192.168.1.171。IP地址可分为五大类,如下图。通常我们只会使用A、B、C三类。
五类IP地址
不同类型的IP地址的起止范围见下表。

类别范围
A类0.0.0.0 到127.255.255.255
B类128.0.0.0 到 191.255.255.255
C类192.0.0.0 到 223.255.255.255
D类224.0.0.0 到 239.255.255.255
E类240.0.0.0 到 247.255.255.255

那大家可能会问,全球这么多地址是由谁来分配和管理的呢?答案就是互联网络信息中心( Internet Network Information
Centre),称作InterNIC。InterNIC只分配网络号,主机号的分配由系统管理员来负责。

尽管通过IP地址可以识别网络上的主机,但人们还是更喜欢给主机起个名字我们称之为域名。在TCP/IP领域里,DNS(域名系统)是一个分布式的数据库,它负责提供IP地址和域名的映射关系。

  1. 数据封装和分用
    当应用程序将数据通过UDP发送时,数据被送入协议栈,然后逐级分层打包,直到网络接口层数据被当作帧发送出去。见下图
    UDP数据包打包
    如果是TCP协议那么只会是UDP首部换成TCP首部,其他地方不变,后面我们会详细介绍各个头的封装格式,这里不做说明。

  2. MAC地址
    上面提到数据通过网络接口层将数据以帧的形式发送了出去,那么发送者是如何标识接收者,接收者又是如何知道发送者是谁的呢?答案就是MAC地址。在以太网帧头包含了发送者和接收者的信息,这个信息就是MAC地址。因此,以太网规定,所有接入网络的设备都必须有一个“网卡”,网卡其中的一个作用就是标识发送者和接收者的地址。
    什么是网卡?见下图
    网卡
    每块网卡出厂时都有唯一的ID,这个ID就是我们常说的MAC地址,它由48个二进制位构成,通常用12个十六进制数表示。笔者的MAC地址是:00:23:15:d4:24:11。前6个十六进制数是厂商编号,后6个是该厂商的网卡流水号。这样,有了MAC地址,就可以定位网卡和数据包的路径了。

  3. 端口号
    端口分为物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。端口通过16bit进行编号,端口号只有整数,范围是从0 到65535。
    那么有人可能会问端口有什么作用呢?
    我们知道,一台服务器可以支持很多中服务,比如web服务、FTP服务、SMTP服务等,这些服务都可以通过一个IP地址来实现,但主机怎么区分这些服务呢?答案就是端口号。在网络服务中,是通过IP地址+端口号来区分不同的功能的。到1992年为止,知名端口号介于1~255之间。256~1023之间的端口号通常都是由Unix系统占用,以提供一些特定的Unix服务—也就是说,提供一些只有Unix系统才有的、而其他操作系统可能不提供的服务,IANA管理1~1023之间所有的端口号。
    我们可以通过命令查看系统端口号:

grep telnet /etc/services 
telnet		23/tcp
rtelnet		107/tcp				# Remote Telnet
rtelnet		107/udp
telnets		992/tcp				# Telnet over SSL
telnets		992/udp
tfido		60177/tcp			# fidonet EMSI over telnet

常用端口号见下表:

端口号名称注解
21/tcpFTP文件传输协议
22/tcpSSH安全登录、文件传送(SCP)和端口重定向
23/tcpTelnetTelnet 服务
25/tcpSMTP简单邮件传输协议Simple Mail Transfer Protocol (E-mail))
69/udpTFTP文件传输协议(Trivial File Transfer Protocol)
79/tcpfinger用于用户联系信息的 Finger 服务
80/tcpHTTP超文本传送协议 (WWW)
88/tcpKerberosKerberos 网络验证系统
110/tcpPOP3Post Office Protocol (E-mail)
113/tcpauth验证和身份识别协议(ident old identification server system)
119/tcpNNTP用于 USENET 讨论系统的网络新闻传输协议(usenet newsgroups)
220/tcpIMAP3互联网消息存取协议版本3
443/tcpHTTPS安全超文本传输协议(securely transferring web pages)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值