1分层
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能.一个协议族,是一组不同层次上的多个协议的组合.TCP/IP通常被认为是一个四层协议系统,每一层负责不同的功能:
1)链路层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.他们一起处理与电缆(或者是其他传输媒介)的物理接口细节
2)网络层,处理分组在网络中的活动,列如分组的选路.在TCP/IP协议中,网络层协议包括IP协议(网际协议).ICMP(internet互联网控制报文协议).IGMP(Internet组管理协议)
3)运输层主要为两台主机上的应用程序提供端到端的通信.在TCP/IP协议中,有两个互不相同的传输协议:TCP(传输控制协议),UDP(用户数据报协议).TCP为两台主机提供高可靠性的数据通信.它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接受到的分组,设置最后发送的超时时钟等.由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略这些细节.UDP则为应用层提供一种简单的服务.它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能达到另一端.任何必须的可靠性必须由应用层来提供.
4)应用层负责处理特定的应用程序细节.
Telent远程登录
FTP文件传输协议
SMTP简单邮件传送协议
SNMP简单网络管理协议
一个数据报是指从发送方传输到接收方的一个信息单元
2互联网的地址,5类
IP地址长32bit,通常写作四个十进制的数
A类:0 7(网络号) 24(主机号) 0.0.0.0-127.255.255.255
B类:10 14(网络号) 16(主机号) 128.0.0.0-191.255.255.255
C类:110 21(网络号) 8(主机号) 192.0.0.0-223.255.255.255
D类:1110 28(多播组号) 224.0.0.0-239.255.255.255
E类: 11110 27(留待后用) 240.0.0.0-247.255.255.255
多主机接口具有多个IP地址,每一个接口对应一个IP地址
互联网络信息中心(InterNIC)分配网络号,主机号由系统管理员分配
单播地址:目的为单个主机
广播地址:目的端为给定网络上的所有主机
多播地址:目的端为同一组内的所有主机
3.域名系统
域名系统(DNS)是一个分布式的数据库,由它来提供IP地址和主机名之间的映射信息
任何一个应用程序都可以调用一个标准的库函数来查看给定名字的主机的IP地址
4.封装
当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层被当作一串比特流传送如网络.其中每一层对收到的数据都要增加一些首部信息,还要增加一些尾部信息.TCP传给IP的数据单元称作TCP报文段(TCP segment).IP传给网络接口层的数据单元称作IP数据报(IP datagram),或者说是分组packet .通过以太网传输的比特流称作帧(Frame)
TCP,UDP,ICMP.IGMP,向IP传送数据报,因此IP生成的IP首部必须加入某种标识,是一个长度为8bit的数值,称作协议域
1-----ICMP
2-----IGMP
6-----TCP
17----UDP
运输层协议在生成报文首部时要存入一个应用程序的标识符,TCP,UDP都用一个16bit的端口号来表示不同的应用程序.TCP,UDP把源端口号和目的端口号分别存入报文首部中
网络接口分别要发送和接受IP,ARP,RARP数据,因此也必须在以太网的帧首部中加入某种形式的标识,以指明生成数据的网络层协议,因此,以太网的帧首部也有一个16bit的帧类型域
5.分用
当目标主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部.每层协议盒都要去检查报文首部中的协议标识,以确定接受数据的上层协议.这个过程称作分用(Demultiplexing)
6.客户-服务器模型
大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,目的是让服务器为客户提供一些特定的服务.服务分为两种类型:重复型,并发型
重复型:等待一个客户请求的到来,处理客户请求,发送响应给发送请求的客户,返回第一步
并发型:等待一个客户请求的到来,启动一个新的服务器来处理这个客户的请求.在这期间可能生成一个新的进程,任务或线程,并依赖底层操作系统的支持.处理结束后,终止这个新服务器.返回第一步
7.端口号
TCP/UDP采用16bit的端口号来识别应用程序
服务器一般都是通过知名端口号来识别的.例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号是21 Telnet服务器的TCP端口号是23
8.互联网
以太网,令牌环网
Internet意思是用一个共同的协议族把多个网络连接在一起,通过TCP/IP互相通信的所有的主机集合
9.应用编程接口
使用TCP/IP的应用程序通常采用两种应用编程接口(API)socket,TLI(运输层接口:transport layer interface)