Blog by Frank

Computer Network

Layer

Network layer model

Application Layer

BGP DHCP(v6) DNS FTP HTTP HTTPS IMAP IRC LDAP MGCP MQTT NNTP NTP OSPF POP PTP ONC/RPC RTP RTSP RIP SIP SMTP SNMP SSH Telnet TLS/SSL(HTTPS)

Presentation Layer

MIME

Session Layer

PPTP

Transport Layer

TCP: (Three way handshake, four way handshake) UDP DCCP SCTP RSVP QUIC

Network Layer

IP IPv4 IPv6 ICMP ICMPv6 ECN IGMP OSPF IPsec RIP

Tunnels PPP MAC

Physical Layer

IEEE 802.11(a, b, g, n, ac, ax)

CA, Https, Symmetric-key algorithm, Public-key cryptography (Application Layer)

Public-key cryptography

Public Key - Public Key Encryption

Private Key - Private Key Decryption

Certificate Authority (CA) Sign on the public key with its private key

TLS over TCP

加密原理和证书。SSL/TLS握手过程

在传统的TCP三次握手过程中,不涉及TLS(Transport Layer Security)加密。三次握手是建立TCP连接的过程,用于在客户端和服务器之间建立可靠的数据传输通道。

然而,如果在TCP连接建立后,应用程序需要进行安全的数据传输,就可以在TCP连接的基础上使用TLS来实现加密。TLS是一种加密协议,用于在网络通信中保护数据的安全性和完整性。

在TLS加密流程中,大致可以分为以下几个步骤:

值得注意的是,TLS加密过程发生在TCP连接建立完成后。因此,在TCP三次握手阶段,还没有进行TLS加密。TLS加密是在建立了可靠的TCP连接后进行的,用于保障后续数据传输的安全。

sequenceDiagram
    participant Client
    participant Server
    Client ->> Server: Client Hello, TLS Version, Cipher Suite, Random Number
    Server ->> Client: Server Hello, TLS Version, Cipher Suite, Random Number
    Server ->> Client: Server Certificate, Server Key Exchange, Server Hello Done
    Client ->> Server: Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
    Server ->> Client: Encrypted Handshake Message
    Server ->> Client: Application Data

TCP Three-way handshake, four-way handshake Termination (Transport Layer)

bilibili - TCP三次握手和四次挥手

Client SYN 8633
Server SYN 303 ACK 8634
Server 8634 ACK 304

Client FIN ACK
Server ACK
Server FIN ACK
Client ACK

三次握手和四次挥手是TCP协议中建立和断开连接的过程。

三次握手(Three-Way Handshake):

客户端发送连接请求(SYN:Synchronize)给服务器,表示客户端要建立连接。 服务器收到连接请求后,回复一个确认连接请求(SYN-ACK:Synchronize-Acknowledge)给客户端。 客户端收到服务器的确认连接请求后,再回复一个确认连接请求(ACK:Acknowledge)给服务器。 这样,建立连接的过程就完成了,双方都确认对方能够收发数据,可以开始传输数据。

四次挥手(Four-Way Handshake):

客户端发送断开连接请求(FIN:Finish)给服务器,表示客户端要断开连接。 服务器收到断开连接请求后,回复一个确认断开连接请求(ACK)给客户端,表示服务器已经收到了断开请求。 服务器检查是否还有未传输完的数据,如果有,先传输完数据再发送一个断开连接请求(FIN)给客户端,表示服务器也准备好断开连接了。 客户端收到服务器的断开连接请求后,回复一个确认断开连接请求(ACK)给服务器,表示客户端已经收到了断开请求。 这样,断开连接的过程就完成了,双方都确认对方已经断开连接,不再传输数据。

总结:

三次握手用于建立连接,确保双方都能正常通信。 四次挥手用于断开连接,确保双方都知道对方已经断开连接,不再传输数据。