java面试准备_TCP/IP部分

一、 TCP/IP的基本概念
二、 三次握手四次挥手

一、TCP/IP基本概念
OSI参考模型,由国际标准化组织ISO提出,TCP/IP模型由ARPAnet提出;
java面试准备_TCP/IP部分
针对TCP/IP模型:

  • 应用层 :应用层有协议TELNET,FTP,SMTP,HTTP;
  • 传输层:TCP、UDP协议;
  • 网际层: IP协议
  • 网络接口层: 没什么东西,实质上TCP/IP是三层;

细说运输层的TCP协议,以及和UDP:
1)传输层提供应用进程之间的逻辑通信,与网络层不同的是,网络层提供的主机之间的逻辑通信。
逻辑通信的含义是指人的角度好像是平行的,实际在数据传输中是要经过物理传输的。
2)复用和分用:复用是指发送方不同的应用进程都可以使用同一个传输层协议传输数据,分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确的交付到目的应用进程。
3)传输层还要对报文进行差错检测(首部和数据部分),网络层只检查IP数据报的首部,不检验数据部分是否出错。
端口标识的是应用进程,IP和MAC地址标识的是主机。
在网络中通过IP地址来标识和区别不同的主机,通过端口号来标识和区分一台主机中的不同应用进程。在网络中采用发送方和接收方的套接字(Socket)组合来识别端点,**
所谓套接字,实质上是一个通信端点:即 套接字 =(主机IP地址,端口号)**
这个标记了一台主机上的某一个应用(进程)。
TCP的特点:

  • TCP面向连接的传输层协议
  • 每条TCP连接只能是两个端点,每条TCP连接只能是点对点的(一对一);
  • TCP提供可靠的交付服务,保证传输的数据无差错、不丢失、不重复且有序;
  • TCP提供全双工通信,允许通信双方的应用进程在任何时候都可以发送数据,为此两端都设有发送缓存和接受缓存,用来临时存放双向通行的数据
  • TCP是面向字节流的。
    UDP特点:
  • 无需建立连接,不会引入建立连接的时延
  • 无连接状态
  • 分组首部开销小
  • 没有拥塞控制
    UDP用于传输数据较少的网络应用,如DNS,SNMP等,也用于多媒体应用,IP电话,实时视频会议,流媒体

二、 三次握手四次挥手
1)建立连接(三次握手)

  1. SYN=1,seq=x.
  2. SYN=1,ACK=1,seq=y,ack=x+1.
  3. ACK=1,seq=x+1,ack=y+1.

2)释放连接(四次挥手)

  1. FIN=1,seq=x.
  2. SYN=1,ACK=1,seq=y,ack=x+1.
  3. ACK=1,seq=x+1,ack=y+1.

具体解释
位码即tcp标志位,有6种标示:
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码)
Acknowledge number(确认号码)
1)建立连接
java面试准备_TCP/IP部分
java面试准备_TCP/IP部分

2)释放连接
java面试准备_TCP/IP部分