众所周知计算机的种类形形色色,而且他们使用的操作系统也各不相同,那么问题来了。为什么差异如此之大的计算机相互之间却可以很轻松的通信呢?这就是TCP/IP的强大了,接下来我会简单的谈谈TCP/IP的一些基本概念。
1.分层
应运层 |
传输层 |
网络层 |
链路层 |
1.1应运层
应运层负责处理特定的应运程序细节,下面时一些常见的应运层程序
(1)Telnet远程登录
(2)FTP文件传输协议
(3)SMTP简单邮件传输协议
(4)SNMP简单网络管理协议
1.2传输层
传输层主要是为俩台主机上的应运程序提供端到端的通信,传输协议主要有TCP(传输控制协议)和UDP(用户数据报协议)
(1)TCP为俩台主机的应运程序提供端到端的通信,它所做的工作就是把应用程序交给它的数据分成合适的小块交给下层协议,最后确认接收到的分组,设置发送最后确认分组的超时时间等,由于TCP协议提供了可靠的通信,所以应运层可以忽略这些细节
(2)UDP则为应运层提供一种非常简单的服务,它只负责把数据报的分组从一台计算机发到另一台计算机,至于发送的可靠性则要由应用层来完成
1.3网络层
层主要处理分组在网络中的活动,例如分组的选路。网络层包括IP协议,ICMP协议,IGMP协议等
1.4链路层
通常包括网卡以及一些设备驱动程序。他们一起来处理电缆的物理接口细节
TCP/IP协议中IP协议提供的时一种不可靠的服务,也就是说,它值尽可能快的把分组从原地点送到目标地点,但是不提供任何保障。另一方面,TCP在不可靠的IP层上提供了一个可靠的运输层,为了提供可靠的运输层,TCP通过超市重传,发送和接收端确认分组等机制。由此可见运输层和网络层负责不同的功能
连接网络的另一途径是使用网桥,网桥是在链路层上对网络进行互联,而路由器则是网络层上对网络进行互联,网桥使得多个局域网组合在一起,这样对上层来说就好像是一个局域网
2互联网的地址
3.域名系统
尽管通过IP地址可以识别主机上的网络接口,进而访问主机,但是我们通常还是喜欢用主机名。在TCP/IP领域中,域名系统(DNS)是一个分布的数据库,由它来IP地址和主机名之间的映射关系。
我们必须知道任何应用程序都可以调用一个标准库函数来查看给定主机名的IP地址,也可以通过逆函数查看给定IP地址的主机名
4.分用
当目的主机收到一个以太网数据帧时,数据就开始由协议栈中由底向上升,同时去掉此层协议报文首部,每层协议盒都要区检查报文协议中的协议标示,以确定接收数据的上层协议,这个过程称为分用
5.端口号
TCP和UDP都是采用16位的端口号来识别应用程序,那么如何来选择端口号?
服务器一般都是通过知名端口号来识别的,FTP服务器的端口号为21,Telnet为23,等