计算机网络读书笔记-----传输层
2015-07-31 23:52
477 查看
终于到传输层了,一直想研究的TCP和UDP,上次面试就被虐了,这次大补一哈。
传输层向上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
我们现在所说的通信都是“主机和主机之间的通信”,但是太过于笼统,严格的讲,两台主机之间的通信是主机上的应用进程之间的通信。由于通信的两个端点是源主机和目的主机之间的应用进程,因此应用进程之间的通信也称为端到端的通信。
图中的双向箭头指示逻辑上的通信线路,事实上真正的通信是沿着虚线传输的。
传输层还有一个重要的功能,就是分用和复用
复用是指:发送方的不同应用进程都可以被运输层的同一个协议所传输。
分用是指:运输层在剥去报文的首部时,都可以把这些数据正确的发送到目的应用进程上。
运输层根据UDP首部的端口号,将数据报通过相应的端口上交到最终的应用进程 。
传输层的两个主要的协议:
TCP:传输控制协议
UDP:用户数据报协议
UDP在传输数据之前不需要建立连接,另外一台主机收到UDP报文也不需要给出确认,所以UDP不提供可靠交付。
TCP则提供的是面向连接的服务,在传输数据之前必须先建立连接,数据传送完毕后要释放连接。由于TCP要提供可靠的、面向连接的运输服务,所以不可避免的增加了开销。
UDP用户数据报和IP数据报的区别:
TCP连接和虚电路的区别:
前面我们提到数据到达IP层后,会首先检查IP首部中的协议号,再传给相应协议的模块。如果是UDP则传给UDP模块,因为最终通信的是应用进程,所以TCP和UDP为了区分传输的协议是分发给主机上的哪个应用进程,定义了端口这个概念。
端口号由其使用的传输协议决定,所以不同的传输协议可以使用相同的端口号,由于传输协议是各自独立的进行处理,因此相互之间不会受到影响。
端口号的分类:
服务器端使用的端口号:一般称为熟知端口号或系统端口号,数值为0~1023
登记端口号:数值为1024~49151,一般为没有熟知端口号的应用程序使用。
客户端使用的端口号:数值为49152~65535,留给客户进程暂时使用,通信完成后,可以供其他客户进程使用。
一个TCP连接的时候由两个端点来标志,每一个端点必须用IP地址+端口号来决定,TCP连接的两个端点叫做套接字,套接字就是IP地址拼接上端口号,例如若IP为192.168.1.101,端口号为80,那么套接字就是192.168.1.101:80
所以有:
每一条TCP连接被通信两端的两个端点(两个套接字)确定
所以有:
:=表示定义为。
传输层向上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。
我们现在所说的通信都是“主机和主机之间的通信”,但是太过于笼统,严格的讲,两台主机之间的通信是主机上的应用进程之间的通信。由于通信的两个端点是源主机和目的主机之间的应用进程,因此应用进程之间的通信也称为端到端的通信。
图中的双向箭头指示逻辑上的通信线路,事实上真正的通信是沿着虚线传输的。
传输层还有一个重要的功能,就是分用和复用
复用是指:发送方的不同应用进程都可以被运输层的同一个协议所传输。
分用是指:运输层在剥去报文的首部时,都可以把这些数据正确的发送到目的应用进程上。
运输层根据UDP首部的端口号,将数据报通过相应的端口上交到最终的应用进程 。
传输层的两个主要的协议:
TCP:传输控制协议
UDP:用户数据报协议
UDP在传输数据之前不需要建立连接,另外一台主机收到UDP报文也不需要给出确认,所以UDP不提供可靠交付。
TCP则提供的是面向连接的服务,在传输数据之前必须先建立连接,数据传送完毕后要释放连接。由于TCP要提供可靠的、面向连接的运输服务,所以不可避免的增加了开销。
UDP用户数据报和IP数据报的区别:
虽然二者都提供的是无连接,不可靠的服务,但是IP数据报要经过好多路由 器的存储转发,而UDP用户数据报是在运输层端到端抽象出来的逻辑信道中 传送的
TCP连接和虚电路的区别:
虽然二者都提供的是面向连接。可靠的服务,但是TCP是在运输层端到端抽 象出来的逻辑通道中传送的,是一种可靠的全双工信道,这种信道根本不清 楚自己经过了哪些路由器。而且这些路由器也不清楚上面的运输层是否建立 的TCP连接。虚电路则是在通信的两台主机之间寻找一条合适的路由,这条 路由就是我们建立的虚电路,所有传送的分组都会沿着这条虚电路传送。
前面我们提到数据到达IP层后,会首先检查IP首部中的协议号,再传给相应协议的模块。如果是UDP则传给UDP模块,因为最终通信的是应用进程,所以TCP和UDP为了区分传输的协议是分发给主机上的哪个应用进程,定义了端口这个概念。
我们知道MAC地址标识的是同一条数据链路的不同主机,IP地址表示TCP/IP网络中互连的主机和路由器,传输层也定义了类似地址的概念:端口号。端口号用来表示一台计算机中进行通信的不同应用程序,所以又称为程序地址。
端口号由其使用的传输协议决定,所以不同的传输协议可以使用相同的端口号,由于传输协议是各自独立的进行处理,因此相互之间不会受到影响。
端口号的分类:
服务器端使用的端口号:一般称为熟知端口号或系统端口号,数值为0~1023
登记端口号:数值为1024~49151,一般为没有熟知端口号的应用程序使用。
客户端使用的端口号:数值为49152~65535,留给客户进程暂时使用,通信完成后,可以供其他客户进程使用。
一个TCP连接的时候由两个端点来标志,每一个端点必须用IP地址+端口号来决定,TCP连接的两个端点叫做套接字,套接字就是IP地址拼接上端口号,例如若IP为192.168.1.101,端口号为80,那么套接字就是192.168.1.101:80
所以有:
套接字(socket) = (IP地址 : 端口号)
每一条TCP连接被通信两端的两个端点(两个套接字)确定
所以有:
TCP连接 := {socket1,socket2} = {(IP1:port1),(IP2,port2)}
:=表示定义为。
相关文章推荐
- TCP通信丢包原因总结
- HttpClient详解(三)—get post封装实例
- HttpClient详解(二)—请求详解
- 计算机网络读书笔记-----数据链路层的可靠性
- 神经网络-并行BP算法
- 没必要对央行网络支付办法恐慌
- 玩转AJAX(第一天) AJAX基础
- 随想录(网络编程中的一些问题)
- Android Volley入门到精通:使用Volley加载网络图片(示例,出错代码)
- 直接用socket实现HTTP下载
- 我们的应用场景与http的不同
- nginx 自定义http header
- hdu 4026 2011上海赛区网络赛F TSP ****
- 【HTTP】URL与资源
- HTTP基本知识概况
- TCP/IP概述
- TCP/IP概述
- 游戏引擎网络开发者的 64 做与不做 | Part 1 | 客户端方面
- wiresharek 分析TCP 报文头
- javaHTTP通信---get方式