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数据报可以不按发送顺序接收。
原创粉丝点击