Java基础(十六)TCP/IP

一、计算机网络七层结构

二、TCP/IP

    一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称。具体点,IP或ICMP,TCP或UDP、TELENT或FTP,以及HTTP等都属于TCP/IP协议,而TCP/IP一词泛指这些协议,有时称它们为TCP/IP协议族。

三、传输层协议TCP、UDP

TCP:面向有连接的传输层协议,可以保证通信两端主机之间的通信可达;可以正确的处理传输过程中丢包、传输乱序等异常情况;还能有效利用带宽,缓解网络拥堵。面向连接的、可靠的、基于字节流的、全双工 模式

UDP:面向无连接的传输层协议,不关注对端是否真的收到传送的数据;如需检查对端是否收到分组数据包,或对端是否连接到网络,需要在应用程序中实现常用于分组数据较少或多播。广播通信及视频通信等领域。

1.TCP


三次握手:(1)建立连接。客户端发送连接请求报文段,将SYN置为1,Sequence Number置为x,然后客户端进入SYN_SEND状态,等待服务器的确认。

                   (2)服务器收到SYN报文段。服务器需要对这个SYN报文段进行确认,将ACK置为x+1,同时,自己还要发送SYN请求信息,将SYN置为1,Sequence Number置为y;服务器端将上述所有信息放到SYN+ACK报文段中,一并发送给客户端,此时服务器进入SYN_RECV状态

                    (3)客户端收到服务器的SYN+ACK报文段。客户端将ACK置为y+1,向服务器发送ACK报文段,这个报文段发送完毕后,客户端和服务器都进入ESTABLISHED状态,完成了三次握手。

四次挥手:可以是客户端,也可以是服务器端先挥手,下面选客户端先挥手。

               (1)客户端设置Sequence Number和ACK,向服务器发送一个FIN报文段;此时,客户端进入FIN_WAIT_1状态,表示客户端没有数据要发给服务端了。

                (2)服务器收到客户端发送的FIN报文段。服务器向客户端回一个ACK报文段,ACK为Sequence Number+1,客户端进入FIN_WAIT_2状态,服务器告诉客户端,服务器也没有数据要发送了,可以关闭连接了。

                (3)服务器向客户端发送FIN报文段,请求关闭连接,同时服务器进入CLOSE_WAIT状态。

               (4)客户端收到服务器发送的FIN报文段,向服务器发送ACK报文段,然后TIME_WAIT状态;服务器收到客户端的ACK报文段,就关闭连接,此时,客户端等待2MSL(最大报文段生存时间)后依然没有收到回复,则证明服务端已经正常关闭,客户端也可以关闭连接

三次握手的原因:为了防止已经失效的连接请求报文段突然又传送到服务端,因而产生错误。防止了服务器端的一直等待而浪费资源。

四次挥手的原因:为了防止客户端一直等待。如果没有第二次挥手,那客户端就不知道服务端是否收到了自己要关闭连接的请求。

2.UDP

UDP(User Datagram Protocol)传输与IP传输非常类似。你可以将UDP协议看作IP协议暴露在传输层的一个接口。UDP协议同样以数据包(datagram)的方式传输,它的传输方式也是"Best Effort"的,所以UDP协议也是不可靠的(unreliable)。那么,我们为什么不直接使用IP协议而要额外增加一个UDP协议呢? 一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用(关于进程,可以参考Linux进程基础)。一个端口就代表了这样的一个通信通道。正如我们在邮局和邮差中提到的收信人的概念一样。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。

四、应用层协议

常见的应用层协议:

HTTP协议:(HyperText Transfer Protocol)

浏览器与客户端通信所使用的协议,传输数据主要格式为HTML,http协议OSI应用层协议,而HTML属于表示层的协议

文件传输协议:FTP(File Transfer Protocol)

传输过程可以选择用二进制还是文本方式,传输时会建立两个TCP连接:发送传输请求时用到的控制连接和实际传输时用到的数据连接

电子邮件协议:SMTP(Simple Mail Transfer Protocol)

可以发送声音图像文字,甚至改变文字大小、颜色等

远程登录(TELNET与SSH):

常见的还有其他远程登录协议,比如:BSD UNIX系中的rlogin的r命令和X Window System中的X协议

网络管理协议:SNMP(Simple Newwork Management Protocol)

在TCP/IP进行网络管理时,采用该协议,其中使用SNMP管理的主机。网桥、路由器等称作SNMP代理(Agent),进行管理的那一段叫做管理器(Manager)

在SNMP代理端,保存着网络接口信息、通信数据量、异常数据量以及设备温度等信息,这些信息通过MIB访问,在TCP/IP中,SNMP属于应用协议,MIB属于表示层协议

MIB(Management Information Base):可透过网络的结构变量

五、网络层协议

IP协议

网络层基本单位 : 数据包 Package


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值