理解TCP/IP协议
来源:互联网 发布:python 发送json 编辑:程序博客网 时间:2024/04/28 23:05
在上篇中,介绍了物理层、网络接口层、网络互联层三个层次结构,其实有这三个层次就可以实现网络通信了。在地理范围很小的区域,可以通过这三个层次来通信,区域小、速度快、数据传输误差率低这三个特点保证了网络通信的实现。但是,在Internet中,由于地理区域很大,数据传输就很容易出现比特位出错问题;这样,如果网络质量不好的话,从网上下载资料就不能使用。所以要保证数据传输的正确性、可靠性,那么就要在网络互联层上增加一层协议。
(4)传输层
1、功能
传输层的功能是实现端到端的连接,即从这个网络的客户端到另一个网络的客户端的连接。
2、功能的理解
由于传输层要实现数据传输的可靠性与正确性,所以要求必须有目的方对接收数据的应答,用以表明数据正确的收到。那么就要在传输数据之前,进行传输通道的连接请求,当请求通过就和对方建立了一条虚拟专用通道,用这条通道来实现数据的按序传输,对方接收也是按序接收,而且通过该通道传回对收到每一个数据的应答。这样的话,就保证了在网络上数据共享的可能。
3、协议
(1)TCP(Transmission Control Protocol)-----传输控制协议
该协议是面向连接的、可靠的通信协议,其报头结构如下:
从该报头结构就可以看出,TCP协议本身很复杂。下面我把每个字段都讲一下。
Source port:源端口 Destination:目标端口
有同学会问,怎么有端口啊?其实,端口是传输层为了给上层------应用层提供良好的服务,由于要提供的服务比较多,怎么来区别不同的服务呢,就是用端口号来标识。
Sequense number:顺序号,此为发送时TCP段的序号。我们知道,用户数据很大,在网络上传输速度就很慢了,所以必须把大数据切成小数据传输,小数据最后还有拼装成原来的大数据,那么就要给每个小数据排上序号,以便于标识。
Acknowledgement number:应答数据报序号,通信双方如果都有数据交换的话,就在数据报中嵌入应答信息,在返回数据报中隐含应答消息;如果一方没有数据发送,就用专用应答数据报来响应。
URG和Urgent pointer:是紧急数据位和紧急数据指针。用于优先发送数据的。
ACK:数据位为“1”,则表示为该数据报是应答数据报。
PSH:立即处理位,当对方收到数据后立即进行处理。
RST:恢复位,当TCP连接断开后,进行连接恢复。
SYN:请求建立接连位,用来进行TCP连接,其实就是第一个TCP数据报。
FIN:请求断开连接位,当发送方发送完数据后断开TCP连接。
Window size:缓存区大小,用来提示对方发送数据的时候数据大小不能超过缓存区大小。
用TCP协议封装的数据报嵌在IP数据报中传输:
IP报头 TCP报头 TCP数据
传输地址:IP地址+端口号
类UNIX系统:一对套接字 socket;Windows系统:套接口 winsock
源套接字
目标套接字
源IP地址
目标IP地址
源端口
目标端口
(2)UDP(User Datagram Protocol)-----用户数据报协议
UDP是无连接、不可靠的传输层协议,用于传输大数据。
4、设备
网关(Gateway),现在用软件实现。
未完待续......
- 理解TCP/IP协议
- 理解TCP/IP协议
- 理解TCP/IP协议
- 理解TCP/IP协议
- 理解TCP/IP协议
- 理解TCP/IP协议
- TCP/IP协议理解
- TCP/IP协议理解
- TCP/IP协议的理解
- 深入理解TCP/IP协议栈之TCP协议
- 理解TCP/IP协议栈之TCP协议
- TCP/IP网络协议的通俗理解
- TCP/IP网络协议的通俗理解
- 对TCP/IP协议的理解
- 结合Wireshark深入理解TCP/IP协议
- TCP/IP协议学习和理解
- 理解TCP/IP协议栈(1)
- 对tcp/ip协议的理解
- RHEL5安装手记
- 《Windows CE嵌入式开发入门——基于Xscale架构》第1章 GPIO和中断控制器
- 使用VBScript开发自动化测试脚本3
- 防火墙真是烂
- CLR via C# 读书笔记(九)静态类,类型对象的生存周期
- 理解TCP/IP协议
- Locking and Unlocking Byte Ranges in Files
- 巧补年月前的“0”
- CSCD刊源(2007年-2008年)
- 农村小姑娘的麻辣作文+老师批语
- POJ 1002
- Anatomy of an Android Application
- CreateDIBSection
- 多线程学习笔记