프로세스 간 통신
전송 계층은 특수 계층인 전송 계층이라고도 합니다. 한편으로는 통신 부분의 최고 수준에 속하고, 다른 한편으로는 사용자 기능 중 가장 낮은 수준에 속한다. 전송 계층은 서로 다른 호스트의 프로세스 간 통신에 사용됩니다. 패킷을 전달하는 라우터의 경우 하위 3개 계층의 기능만 가지며 전송 계층 이상은 사용하지 않습니다.
프로세스, 즉 실행 중인 프로그램입니다. Linux에서는 프로그램이 실행될 때 운영 체제가 프로세스에 프로세스 번호를 할당합니다. ps aux 명령을 사용하면 모든 프로세스를 볼 수 있습니다.
# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 51744 2808 ? Ss Jul31 16:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 ……
Port
TCP/IP의 전송 계층은 16비트 포트 번호를 사용하여 포트를 표시하므로 호스트는 65535개의 포트를 가질 수 있습니다. 웹 오픈을 해본 사람이라면 웹 서버의 80번, mysql 서비스의 3306번, 기타 포트 등 일반적으로 사용되는 포트 번호를 알아야 합니다. 두 호스트 간의 프로세스는 해당 포트 번호를 통해 통신하므로 프로세스에는 포트에서 수신 대기하는 기능도 있어야 합니다. Linux에서 모니터링되는 포트를 보는 명령은 netstat -tlunp
# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2449/nginx: worker tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1010/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1819/sshd ……
포트에도 다중화 및 역다중화 기능이 있습니다. 다중화는 호스트의 여러 응용 프로그램 프로세스가 동일한 포트 번호를 사용하여 통신할 수 있다는 의미이며, 다중화는 다중화를 의미합니다. IP 계층에서 얻은 데이터그램은 포트 번호를 통해 다른 애플리케이션 프로세스로 전달될 수 있습니다.
TCP 및 UDP
전송 계층에는 전송 제어 프로토콜 TCP와 사용자 데이터그램 프로토콜 UDP의 두 가지 프로토콜만 있습니다. 이 두 프로토콜에는 고유한 특성과 일부 적용 시나리오가 있습니다.
TCP는 연결 지향 프로토콜입니다. 데이터 전송이 필요하지 않으면 연결을 끊어야 합니다. TCP는 고려해야 할 요소가 많은 비교적 복잡한 프로토콜입니다. 종단 간 안정적인 전송을 제공할 수 있지만 일대다 및 다대다 통신은 지원하지 않습니다. 일반적으로 사용되는 TCP 프로토콜에는 HTTP 프로토콜, ftp 프로토콜, telnet 프로토콜 등이 포함됩니다.
UDP는 패킷용으로 비교적 간단하며 안정적인 전송보다는 최선의 노력을 사용합니다. 일대일, 일대다, 다대다 통신을 수행할 수 있습니다. UDP 프로토콜을 사용하는 일반적인 프로토콜에는 DHCP, DNS 및 RIP 프로토콜이 포함됩니다.
특성을 설명하는 예가 있습니다. TCP는 전화 통화와 같으며 통화 전에 연결이 설정되어야 합니다. UDP는 문자 메시지를 보내는 것과 같습니다. 문자 메시지를 보내기 전에 상대방 호스트의 상태를 알 필요가 없습니다.
위 내용은 전송 계층 개요: 포트와 프로세스 간의 관계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!