TCP/IP协议
![]()
学习笔记57~TCP/IP协议
![]() 整个TCP/IP协议族分四层: 1.链路层:包括系统中的驱动程序和网络接口卡,他们和具体的物理媒介(如电缆)一起,向高层提供物理链路。 2.网络层:主要任务是做出数据分组的路由选择。他由IP协议,ICMP协议,IGMP协议组成。 3.运输层:为相互通信的主机提供端到端的通信能力。 其中TCP协议向应用层提供可靠的数据连接,他保证进程间数据传输的正确,有序和不重复,UDP协议仅仅为应用层提供数据报的分组发送服务,数据传输的可靠性只能通过用用层来保证。 4.应用层:负责处理具体的TCP/IP协议应用的细节。常见的应用包括Telnet(远程登录)和FTP(文件传输协议)和SMTP(简单邮件协议) 二.IP协议: IP地址的全称是互联网地址,他是唯一标识的网络接口,即一台主机(但一台主机可能拥有多个IP地址,通常说这样的主机是多接口的) IP地址是一个32位二进制数,整个IP地址空间被分为5类地址,用A,B,C,D,E表示。通常关心的是A,B,C三类地址。这三类地址由网络号和主机号组成 A类|------8位-----| |0|__网络号______|___________ B类|------16位------------| |10|__网络号______________|__主机号____________| C类|-----32位-----———————| |110|__网络号__________________ IP地址有三类:单播地址,组播地址,广播地址。 三.端口号: 系统内部,为了区分不同的进程,TCP/IP协议引入了端口号的概念,用它来表示主机内不同的进程。 端口是进程和运输层之间I/O操作的桥梁。TCP/IP协议用16位二进制数表示端口号,因此理论上系统可以分配利用的端口号为2^16=65536个。端口号有IANA控制和分配,65536个端口划分为三类: 1.知名端口:0~1023,他们由IANA分配,为固定服务保留。如大家众所周知的FTP协议的端口是20,21,HTTP协议的端口是80,等等 2.注册端口:1024~49151,他们供系统内的普通应用程序和进程使用。 3.动态端口:49152~65535,又称私有端口,为客户通信进程和程序动态、临时使用。 四.协议功能 1.IP协议: IP协议的功能就是将数据从源端发送到目的端,不论是具体的物理网络还是以太网、令牌环网或告诉的ATM网络都是为了保证数据能从源端到数据端。 IP协议提供了一下的服务: 寻址 路由选择 数据报的分段和重组 IP协议以IP报文的格式传输高层提交的数据,他为高层提交的数据传输提供无连接的服务。 在发送数据之前,他不在通信端之间建立连接,因此IP协议不保证传输的可靠性。 IP协议简单的对上层需要发送的数据进行分组、封装并发送,数据传输的正确性和可靠性需要协议族的高层协议提供的服务来保证(如TCP提供的差错控制服务)。数据到达目的端后,IP目的端也没有相应的确认机制,仅仅是把数据包重组后交给高层协议处理。 2.TCP协议: TCP协议是运输层协议,它提供面向连接的、可靠的、端到端的字节流服务。 TCP协议提供以下服务: 建立维持和终止两进程之间的连接 待确认应答机制饿数据分段传输 保证传输的顺序性 差错控制 流量控制 全双工的数据传输 每次TCP数据通信(对话)都要经过建立连接、传输数据、解除连接的过程。连接一旦建立,TCP分段不必携带目的地址发送。TCP协议提供的是面向字节流的服务。所谓字节流就是8BIT的信息流,协议本身不在应用提交的数据中插入分隔标识,数据的格式需要应用自己分区 TCP协议可以保证端到端数据传输的正确、有序和可靠。这是因为,TCP报文头提供了一系列的字段来控制流式的字节传输。虽然TCP依赖无连接的IP协议传输数据,每个TCP分段到达目的端 的路由可能不同,但在目的端,TCP协议要负责收到的数据分段的处理,包括分段排序,重复分段的丢弃。 3.UDP协议 UDP协议提供的是无连接的、不可靠的的用户数据报传输服务。UDP协议的报文头很简单。 0__________________ |___________16位源端口号______|_________16位目的端口号____________| |__________16位UDP报文长度____|__________16位UDP校验和____________ |________________ 从图中可见,UDP报文没有任何机制保证所传输的数据能够到达目的地。UDP报文可以保证用户数据的边界,因为UDP没有数据缓冲功能。实际应用中,数据传输的可靠性必须由应用程序实现。对于无连接的数据传输,通常采用超时重传机制来保证。IP协议只负责把数据从源主机传送到目的主机,而UDP协议提供了协议端口号,因此它的作用在于区分同一主机上的不同进程 ,提供复用的功能。 UDP协议的另外一个作用是发送广播数据和组播数据包。TCP协议再次数据传输时需要建立和维持连接,这对于需要发送广播数据或是组播数据的场合,额外开销太大,因此广播和组播应用一般都建立在UDP协议之上。 |