Android 网络编程——IP、TCP、UDP
来源:互联网 发布:程序员的修炼之道下载 编辑:程序博客网 时间:2024/06/04 17:54
基本概念
IP:互联网协议(Internet Protocol,IP)是用于报文交换网络的一种面向数据的协议。IP是在 TCP/IP 协议中网络层的主要协议,任务是根据源主机和目的主机的地址传送数据。为达到此目的,IP 定义了寻址方法和数据报的封装结构。
TCP:传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP:用户数据报协议(UDP)是 TCP/IP 模型中一种面向无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
一.什么是TCP连接的三次握手
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)
二.TCP和UDP的区别
1.TCP是面向链接的,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发,所以说UDP是无连接的、不可靠的一种数据传输协议。
2.也正由于1所说的特点,使得UDP的开销更小数据传输速率更高,因为不必进行收发数据的确认,所以UDP的实时性更好。
- Android 网络编程——IP、TCP、UDP
- 黑马程序员——网络编程之UDP、TCP/IP
- 【网络编程】——IP、TCP、UDP、ARP、ICMP结构
- 网络编程之---TCP/IP UDP总结
- TCP/IP网络编程之UDP
- TCP/IP网络编程之UDP
- Day20—网络编程常识、TCP、UDP
- Java基础—网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- Java基础—网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- Java基础—网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- Android网络编程TCP、UDP(三)——UDP实例:搜索局域网所有的设备
- 《TCP/IP网络编程》一、套接字/TCP/UDP
- 【网络编程】TCP/IP、UDP、网络概…
- <网络编程培训之一> 编程实现IP/TCP/UDP报文
- Android网络编程之UDP/TCP
- android 网络编程Udp、Tcp、Http Socket
- 代理设计模式
- 接口和抽象类有什么区别?
- Unity 项目在设备上场景发白问题
- jquery失去焦点与获取焦点事件blur() focus()
- eclipse tomcat maven热部署
- Android 网络编程——IP、TCP、UDP
- VS试用版的评估期XX天后结束及找不到输入序列号的地方
- spring入门实例详解
- CUDA用于图像处理中的形态学开闭运算
- 浅析Hibernate映射(一)——基本映射
- 国务院通过大数据发展行动纲要
- 并发 并行 同步 异步 多线程的区别
- hdu 5422 Rikka with Graph
- H264 TS流的解码过程-ES-PES-DTS-PTS-PCR