네트워크 프로토콜이란
네트워크에서 노드와 노드가 통신할 때 어떤 노드가 어느 노드에게 어떤 데이터를 어떻게 보내는지 작성하기 위한 양식, 즉 통신규약입니다. 여러 가지 상황에 따라서 프로토콜이 있으며 각 프로토콜은 해당 프로토콜만의 양식을 가지고 있습니다.
계층은TCP/ IP 5계층으로 1계층부터 차례대로 올라가면서 각 프로토콜에 대해 알아보겠습니다.
L1 Physical , L2 Date Link
이더넷 (Ethernet)
- Xerox, Digital, Intel이 공동으로 사양을 개발하여 1980년에 제품화시킨 LAN구현 방식
- 네트워크 장치마다 부여하는 mac 주소를 가지고 실제 물리 회선을 통해 프레임을 주고 받는 것을 담당
- OSI 모델의 물리 계층에선 신호와 배선, 데이터 링크 계층에선 MAC패킷과 프로토콜의 형식을 정의
- 근거리 통신망(LAN)에 사용하기 위해 개발한 기술로 지금은 표준화되어 WAN과 LAN에서 모두 활용
※ 프로토콜은 그 이름을 풀어서 해석해보면 의미를 대부분 유추할 수 있다.
L3 Network
IP (Internet Protocol)
- 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 프로토콜
- OSI 모델에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당
- 비신뢰성과 비연결성
- 비신뢰성: 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않음
- 비연결성: 송신자와 수신자가 데이터 전송을 위해 서로 연결될 필요가 없음
- 점차 인터넷 속도가 빨라지고 전달되는 데이터에 대한 신뢰성이 중요해지다 보니 현재에는 IP 패킷 위에 TCP 패킷을 덮은 형태인 TCP/IP 프로토콜을 자주 사용
IGMP (Internet Group Management Protocol)
- 일종의 그룹 관리용 신호 프로토콜
- LAN상에서 라우터가 멀티캐스트 통신 기능을 구비한 개인용 컴퓨터에 대해 멀티캐스트 패킷을 분배하는 경우에 사용
- PC가 멀티캐스트로 통신할 수 있다는 것을 라우터에 통지하는 프로토콜
ICMP (Internet Control Message Protocol)
- 인터넷 제어 메시지 프로토콜
- IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP계층에서 필요한 기타 기능들을 수행하기 위해 사용되는 프로토콜
- IP와 하나의 쌍을 이루며 동작
- 오류 통지를 위한 오류 메시지와 진단용 문답 메시지 두 종류로 구분
★꼭 알아둬야 할 오류 메세지
- Destination Unreachable : 라우터가 특정 노드의 패킷을 목적지에 보내지 못할 경우, 송신 노드에게 이 에러 메시지를 보냅니다. 메시지 안에는 에러코드가 포함되어 목적지까지 전송되지 못한 이유를 알려줍니다.
- Redirection : 라우터가 송신측 노드에 적합하지 않은 경로로 설정되어 있을 경우 해당 노드에 대한 최적화된 경로를 재설정하라는 뜻입니다.
- Time Exceeded : 패킷이 네트워크 사이에서 무한정 돌아가지 않게 하기 위해 각 라우터가 패킷을 처리할 때마다 TTL을 감소시키다가 '0'이 되면 송신측 라우터에 Time Exceeded 에러 메시지를 되돌려 보냄으로써 패킷이 폐기된 사실을 알립니다.
ARP (Address Resolution Protocol)
- 주소 결정 프로토콜
- 네트워크 상에서 논리적인 주소인 IP 주소를 물리적 네트워크 주소인 Mac주소로 매칭시키기 위해 사용
RARP (Reverse Address Resolution Protocol)
- Mac주소에 해당하는 IP 주소를 매칭시키는 프로토콜
※ ARP와 RARP가 2계층에 속해있는 경우도 있음 (Mac주소와 IP주소 둘 다 연관되어 있기 때문에)
L4 Transport
TCP (Transmission Control Protocol)
- 데이터가 올바르게 갈 수 있도록 전송을 담당하는 연결 지향형 프로토콜
- 순서번호와 확인 응답 필드를 통해 데이터의 전달을 보증하고 수신측이 데이터를 순서대로 조립하여 받게 해주기 때문에 신뢰성이 뛰어남
UDP (User Dategram Protocol)
- 신뢰성이 낮은 데이터그램 프로토콜
- TCP의 반대되는 특징을 가지고 있음 (비신뢰성)
- Best Effort방식 (다른 건 무시하고 최대한 데이터를 빠르게 보내겠다! )
- 실시간 스트리밍 서비스에 사용
L5 Application
HTTP (Hyper Text Transfer Protoco)
- 서버/클라이언트 모델을 따라 하이퍼텍스트를 교환하기 위한 프로토콜
- 암호화가 되지 않은 평문 데이터를 전송하기 때문에 민감한 데이터를 주고 받으면 제3자가 정보 조회 가능
- 80번 포트를 사용
HTTPS (Hyper Text Transfer Protocol SSL)
- HTTP에 데이터 암호화가 추가된 프로토콜
- 대칭키 암호화와 비대칭키 암호화를 모두 사용하여 빠른 연산 속도와 안정성을 갖춤
- 443번 포트를 사용
☆ HTTP는 평문데이터로 통신하기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고받을 수 있습니다. HTTPS를 이용하면 암호화/복호화의 과정이 필요하기 때문에 HTTP보다 속도가 느려지지만 현재에는 거의 차이를 못느낄 정도입니다. 하지만 HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생합니다. 그렇기에 노출이 되어도 괜찮은 단순한 정보 조회 등 만을 처리한다면 HTTP, 개인 정보와 금융정보 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를 이용하면 됩니다.
FTP (File Transfer Protocol)
- 파일 전송 관련 프로토콜
- 동작 방식이 단순하고 직관적이며 평문형 데이터를 전송하기 때문에 보안에 취약함
- 21번 포트를 통해서 전송을 제어
- 20번 포트를 통해서 실제 데이터 전송
- 수동 모드와 능동 모드 두가지를 지원
- 능동 모드 (Active Mode) : 데이터 전송 채널을 20번 포트를 사용합니다. 서버가 클라이언트에 접속을 시도하기에 클라이언트 환경에 따라 데이터를 받지 못하는 에러가 발생할 수 있습니다.
- 수동 모드 (Passive Mode) : 데이터 채널을 20번 포트 대신에 1024번 이상의 랜덤한 비 특권 포트를 사용합니다. 클라이언트가 서버에 접속하는 방식이므로 클라이언트 환경에 구애 받지 않고 파일 송수신이 가능합니다. 하지만 수동모드에 사용되는 Port에 대한 관리 필요와 클라이언트에서 서버로 접속하는 구조로 보안위험이 상승합니다.
- 능동 모드 (Active Mode) : 데이터 전송 채널을 20번 포트를 사용합니다. 서버가 클라이언트에 접속을 시도하기에 클라이언트 환경에 따라 데이터를 받지 못하는 에러가 발생할 수 있습니다.
FTPS (FTP over SSL)
- TLS/SSL(공개키 암호화 방식) 을 이용한 FTP 의 확장판
- 21번, 20번 포트 사용 (설정에 따라 변경 가능)
SFTP (SSH File Transfer Protocol)
- SSH로 파일 전송하는 프로토콜
- SFTP 는 FTP를 사용하지 않음 (SSH 기반의 새로운 파일전송 프로토콜)
- 22번포트만 사용 (보안에 유리함)
★ 메일 송신 : 송신자가 메일 서버에 메일을 보내는 것
★ 메일 수신: 메일 서버가 수신자에게 메일을 보내는 것
SMTP (Simple Mail Transfer Protocol)
- 이메일 데이터를 메일 서버로 송신할 때 사용하는 프로토콜
- 25번 포트를 사용
POP3 (Post Office Protocol)
- 메일서버에 지정된 사용자ID로 접속해서, 메일박스 내에 도착한 메일을 자신에게 가져오기 위해 사용되는 프로토콜
- 양방향 동기화를 사용하는 최신 프로토콜과 달리 POP3는 일방향 전자 메일 동기화만 지원하므로 사용자는 서버에서 클라이언트로 전자 메일을 다운로드하는 것만 허용
- Client가 메일을 Server로부터 가지고 온 후 서버에서 해당 메일을 삭제 하기 때문에 다른 곳에서 메일 확인이 불가능
- 110번 포트를 사용
IMAP (Internet Messaging Access Protocol)
- 메일 서버에서 메일을 다운로드가 아닌 복사해오는 방식이기 때문에 Client가 메일을 가져와도 해당 메일이 서버에 계속 남아있음 (만약 메일 서버가 해킹당하면 서버에 있는 메일 정보들이 고스란히 노출됨 )
- 사용자는 컴퓨터나 모바일 장치에서 여러 전자 메일 클라이언트를 통해 로그인하여 동일한 메시지를 읽을 수 있음
- 사서함의 모든 변경 내용은 여러 장치에서 동기화되고 사용자가 전자 메일을 삭제하는 경우에만 서버에서 메시지가 삭제됨
- 143번 포트를 사용
TELNET
- 원격 접속 서비스로서 특정 사용자가 네트워크를 통해 다른 컴퓨터에 연결하여 그 컴퓨터에서 제공하는 서비스를 받을 수 있도록 하는 프로토콜
- 유연성과 자율성 (운영체제가 달라도 가능)
- 윈도우7까지는 많이 사용되었던 프로토콜 (지금은 비활성화)
- 평문으로 데이터 통신하기 때문에 보안에 취약점이 있어 SSH로 대체되고 있음
- 23번 포트를 사용
SSH (Secure Shell)
- 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜
- 텔넷에서 평문으로 통신되었던 부분들을 암호문으로 통신
- 현재 원격 접속 보안을 위한 필수적인 요소로 자리잡음
- 22번 포트를 사용
'리팩토링' 카테고리의 다른 글
DDOS, Firewall, IDS, IPS (0) | 2023.02.10 |
---|---|
계층 별 프로토콜 (보완) (0) | 2023.01.31 |
계층 별 장비 (2) | 2023.01.10 |
TCP의 연결방식과 종료방식 (0) | 2022.12.26 |
TCP 와 UDP (0) | 2022.12.26 |