Java中Socket与TCP的区别是什么?

知识补充

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
Socket本质是编程接口(API),对TCP/IP的封装,通常也称作套接字,用于描述IP地址和端口。

7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示层 例如XDR、ASN.1、SMB、AFP、NCP
5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
3 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
2 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 物理层 例如线路、无线电、光纤、信鸽

解疑答惑

  1. 如果不使用socket是不是无法建立tcp协议的连接了?
  2. 如果socket是对TCP/IP的封装那么TCP是怎样子的?
  3. socket读取流读取的字节流是TCP没有处理过的原字节流吗?
  4. 为什么Java中Socket的每次读取都少了第一个字节?
  5. TCP协议传输的数据是怎样子的有什么样的格式或约定?

你可能感兴趣的:(网络编程)