3.网络协议与tcp问题

1. 协议分层
TCP/IP协议族是一个四层协议系统,自底而上分別是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务
3.网络协议与tcp问题
数据链路层
数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。
数据链路展两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(Reverse Address Resolve Protocol,逆地址解析协议).它们实现了 IP地址和机器物理地址(MAC地址)之间的相互转换,
当数据交换时上层网络层使用IP地址寻找一台机器,而数据链路层使用物理地址寻找一台机器,因此网络层必须先将目标标机器的IP地址转化成其物理地址,才能使用数据链路提供的服务,这就 ARP协议的用途
网络层
网络层实现数据包的选路和转发,网络层最核心的协议是IP协议(Internet Protocol,因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。
网络层另外一个重要的协议足ICMP协议(Internet Control Message Protocol»因特网控制制报文协议)。它是IP协议的重要要补充,主要用于检测网络连接,比如可以通过发送报文来检测目标是否可达
传输层
网络层当中的IP协议为了解决传输当中的路径选择的问题,只需要按照此路径传输数据即可,传输层利用udp或者tcp协议以及网络层提供的路径信息为基础完成实际的数据传输,所以称为传输层
应用层
应用层负责处理应用程序的逻辑。数据链路层、网络层和传输层负责处理网络通讯细节,这部分必须既稳定又高效,因此它们都在内核空间中实现,应用层则负责在用户户空间实现,因为为它负责处理众多逻辑。
应用层协议举例:
FTP文件传输协议是TCP/IP网络上两台计算机传送文件的协议
SMTPSimpleMailTransferProtocol)即简单邮件传输协议
2.tcpudp介绍与区别
***TCP(Transmission Control Protocol传输控制协议): *** 是一 种面向连接的、可靠的、基于字节流的传输层通信协议,使用三次握手协议建立连接、四次挥手断开连接。面向连接意味着两个使用TCP的应用(通常是一个
客户端和一 个服务器)在彼此交换数据包之前必须先建立一一个TCP连接。在一一个TCP连接中,仅有两方进行彼此通信,广播和多播不能用TCPTCP协议的作用是,保证数据通信的完整性和可靠性,防止丢包。TCP
连接作为最基本的对象,-TCP连接都有两个端点, 这种端点我们叫作套接字(socket),端口号拼接到IP地址即构成了套接字。
***UDP(User Datagram Protocol用户数据报协议): *** OSI(Open System Interconnection开放式系统互联)参考模型中- -种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP协议的主要作用是将网
络数据流量压缩成数据包的形式。
区别:
1. TCP提供的是面向连接的、可靠的数据流传输; UDP提供的是非面向连接的、不可靠的数据流传输。
2. TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,按序到达; UDP尽最大努力交付,即不保证可靠交付。
3. TCP面向字节流; UDP面向报文。
4. TCP连接只能是点到点的; UDP支持-对一、一对多 多对一和多对多的交互通信。
5. UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
6. TCP对系统资源要求较多,UDP对系统资源要求较少。TCP首部有20字节; UDP的首部只有8个字节。
7. TCP的逻辑通信信道是全双工的可靠信道; UDP的逻辑通信信道是不可靠信道。
 
2.1 tcp 解释
. TCP协议简介 TCPTCP/IP体系中非常复杂的一个协议,TCP最主要的特点有:
1. TCP是面向连接的运输层协议。应用程序在使用TCP协议之前,必须先建立TCP连接。在传递数据完毕后,必须释放已建立的TCP连接。
2. 每一条TCP连接只能有两个端点,只能说点对点的。
3. TCP提供可靠交付的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达。
4. TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
5. 面向字节流。TCP中的指的是流入到进程或从进程流出的字节序列。面向字节流的含义是:虽然应用程序和TCP的交互是一-次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连 串的无结构
的字节流。TCP并不知道所传送的字节流的含义。TCP不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块具有对应大小的关系。但接收方应用程序收到的字节流必须和发送方应用程序发出的字
节流完全一一样。 当然,接收方的应用程序必须有能力识别收到的字节流,把它还原成有意义的应用层数据。
3.网络协议与tcp问题
可靠传输
流量控制
拥塞控制
 
2.2 tcp 问题
数据发送问题:
tcp在发送数据的时候因为存在数据缓存的关系,对于数据在发送的时候在 短时间内 如果连续发送很多小的数据的时候就会有可能一次性一起发送,还有就是对于大的数据就会分开连续发送多次