1. DNS协议
DNS协议的作用就是将域名解析为IP。
2.TCP/IP协议和Socket
TCP在传输前会有三次握手,传完数据端口需要四次挥手。理解过程需要先理解TCP中的两个序号和三个标志位的含义。
seq :sequence number,表示所传输数据的序号。TCP传输时每一个字节都有一个序号。发送数据时会将数据的第一个序号发送给对方,接收方会按序号检查是否接受完整。
ack:ackonledgement number,确认号。接收端用它来给发送端反馈已经成功接受到数据信息,它的值为希望接受的下一个数据包起始序号,也就时ack值所代表的序号前面的数据已经成功接受了。
ACK:确认位。只有ACK=1的时候ack才起作用。正常通信时ACK=1,第一次发起请求时因为没有需要确认接受的数据所以ACK为0;
SYN:同步位,用于在建立连接时同步序号。刚开始建立连接时并没有历史接受的数据,所以ack也就没有办法设置,这时按照正常的机制就无法运行了,SYN的作用就时解决这个问题的,当接受端接受到SYN=1的报文时就会直接将ack设置为接受到的seq+1的值。SYN会在两次握手时都为1,因为通信双方的ack都需要设置一个初始值。
FIN:终止位,用来在传输数据完毕后释放连接。
TCP/IP协议只是一套规则,并不能具体工作,就像是程序中的接口一样,而Socket是TCP/IP协议的一个具体的实现。
3.HTTP协议
HTTP协议是应用层的协议,在TCP/IP协议接受到数据之后需要通过HTTP协议来解析才可以使用。电报中的编码和解码就相当于网络传输中的HTTP协议。
HTTP报文:请求报文,响应报文。都包含三部分:首行、头部、主体。
4.Servlet与java web开发
Servlet 是java web开发的标准。通过TCP/IP协议、HTTP协议已经可以得到数据了,servlet的作用就是对接受到的数据进行处理并生成要返回给客户端的结果。标准和协议一样不能真正干活,要想使用servlet需要有常见的servlet容器才行,例如Tomcat。