协议基础
1.TCP/IP协议
TCP/IP协议(传输控制/网际协议),其基本的数据传输单位一般称为数据报。 TCP协议负责把数据分成若干个数据报,并给每个数据包分配首部数据,以确保数据在接收端能够把数据还原为原来的格式。IP协议再在数据报的首部加上接收端的主机地址。 TCP/IP协议是分层的,数据传输的时候在每层之间都要加上一个首部。
TCP/IP分为四层 (应用--传输(TCP/IP)--网络(ICMP,IP,IGMP)--链路(Ethernet ,PPP)),数据在传输的时候在每层加上该层的数据首部,在接收端接收数据,读取首部数据,去掉首部,读取下一层的数据信息。
ARP协议为地址解析协议,它负责把IP协议的网络地址映射为硬件地址,也就是把IP转换为对应的MAC。
RARP协议是反向地址解析协议
ICMP协议是网间报文控制协议,它的功能是处理IP主机或者路由器之间的差错和传输控制,例如网络通不通,主机是否可以到达,路由是否可用等网络本身的消息,虽然这些控制消息不传输用户的数据信息,但是对于了解网络状态以及数据传输的正确性都起到了重要的作用。
TCP协议是传输控制协议,它主要负责用户进程的可靠的全双工字节流的传输,是面向连接的协议,工作在传输层,只要提供了对数据传输的正确性的控制,它要保证数据的完整到达,以及整个链路的正常连接
UDP协议是用户数据报协议,它主要提供了用户进程的无连接服务,用于传送数据,但不保证数据的正确性。
FTP协议是文件传输协议
SMTP是简单邮件传输协议
TELNET协议是终端协议,远程登录服务
HTTP超文本传输协议
OSI协议
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
套接字socket
套接字socket是用来实现主机和主机通信的一个接口,流(stream)套接字,数据报(datagram)套接字和原始(Raw)套接字
流套接字提供了可靠的双向顺序数据流,可保证数据不会在传输过程中丢失,破坏及重复出现,通过INET地址族的TCP协议实现
数据报套接字也提供双向的数据传输,但是并不对数据的传输提供担保,但是传输效率高。
原始套接字可以让进程直接访问底层协议,例如在某个以太网设备上打开原始套接字,然后获取原始的IP数据传输信息,原始套接字可以构造和接收原始的IP数据报文,而前两种套接字只能收到用户数据,例如可以接收原始IP报文分析数据