TCP/IP入门
来源:互联网 发布:java定时任务管理系统 编辑:程序博客网 时间:2024/06/06 01:26
预备知识
ip地址,互联网地址,是IP协议提供的一种统一的地址格式,可以说,它来标识每个网络和网络中的每个网络设备,是一种分配的逻辑地址。ip地址是网络号+主机号。
port,端口号,是应用在某一台主机上的逻辑地址,并不是实际的硬件上的物理端口,一个端口与一个程序对应。为什么需要TCP/IP协议
随着计算机的发展,世界上的计算机越来越多,而信息要发展,必然要交流,人们开始把计算机连接在一起,搭建网络,然而仅仅是物理连接是不够的,就好比这个世界上有许多语言,仅仅两个人碰面,他们不一定能交流,需要共同的语言才可以沟通,比如英语,网络中也是这样,需要共同的网络协议才能通信,TCP/IP协议作为一个基础协议诞生了。随后,网络场景越来越复杂,网络层次结构丰富起来,为了适应于各种情况下的通信,TCP/IP协议簇这个大家庭发展起来,增加了许多新成员,就像这个世界上有了各个方面的共同语言,英语,绘画,音乐,运动,情感等。定义
TCP,Transmission Control Protocol,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
IP,Internet Protocol,网间协议,IP协议是将多个包交换网络连接起来,它是在源地址和目的地址之间发送数据包,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。
TCP/IP,TCP和IP分别是一个协议,可我们通常把这两者结合在一起讲,它又是网络通信协议,规范了网络中所有设备彼此之间的数据来往格式和传输方式,是基础协议。另外,它又是一个协议簇,这个大家庭中的成员如下图:
后面再详细介绍这些常用协议。- TCP的工作过程和特点
一、 连接建立。
这就是通过传说中的“三次握手”协议建立连接。
(1)客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。
(2)服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。
(3)客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
二、连接终止
这就是通过传说中的“四次握手”协议终止连接。
(1) 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
(2) 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
(3) 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
(4) 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。
既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节。
三、可靠性
1.面向连接
2.需要确认
3.重传策略
4.校验和检错
5.滑动窗口协议做流量控制 - IP的功能、头格式和特点
一、功能
1.寻址
很好理解,ip地址标识设备,就容易寻找到它。
2.分段
将网络分成不同的网段,通过ip地址。
二、头格式
三、特点
1.不可靠
它的意思是它不能保证 I P数据报能成功地到达目的地。
I P仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, I P有一个简单的错误处理算法:丢弃该数据报,然后发送 I C M P消息报给信源端。(后面再讲ICMP,这里不理解没关系)任何要求的可靠性必须由上层来提供(如T C P) 。
2.无连接
这个的意思是发送前不需要事先建立连接线路,而且I P并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。这也说明, I P数据报可以不按发送顺序接收。
- tcp/ip入门
- tcp/ip入门
- tcp/ip协议入门
- TCP/IP入门(2)
- TCP/IP 入门
- TCP/IP入门
- TCP/IP入门
- TCP/IP入门
- TCP/IP入门笔记
- TCP/IP入门--TCP/IP的概念
- TCP/IP入门(1) --链路层
- TCP/IP入门(1) 链路层
- TCP/IP入门(1) --链路层
- TCP/IP入门(1) --链路层
- TCP/IP协议入门篇
- TCP/IP入门 --传输层
- TCP/IP入门笔记2
- 《TCP/IP入门经典》——什么是TCP/IP
- 动态规划--字符串拆分
- Invalid action class configuration that references an unknown class
- 沿对角线打印数组(任意二维数组)
- 关于Ubuntu-17.04的失误操作问题导致系统进入死锁的问题
- struts2 简要总结
- TCP/IP入门
- QGraphicsItem 选中和焦点问题
- Qt获得焦点和失去焦点处理事件 (Focus事件)
- 用Python Scrapy爬取某电影网站并存储入mysql
- Qt信号槽设计简谈
- Leetcode -- Longest Substring Without Repeating Characters
- C++ Primer 5.3.2~6.2.3部分节练习
- Java中遍历Map的四种方法总结
- 转自 http://blog.csdn.net/gnehcuoz/article/details/52686824