백엔드 공부 메모/네트워크
TCP/IP 프로토콜
볼륨조절불가
2024. 2. 10. 14:38
728x90
* 해당 게시글은 <그림으로 배우는 Http&Network Basic>을 읽고 정리하면서 공부하기 위해 메모하듯 작성하는 글입니다.
프로토콜
- 컴퓨터나 네트워크 기기가 서로 통신하기 위해 지켜야 하는 상호 규약(약속)
- 케이블 규격, IP주소 지정 방법, 상대를 찾는 방법, 상대 도달 순서 등에 프로토콜이 적용됨
TCP/IP
좁은 의미: TCP 프로토콜 + IP 프로토콜
넓은 의미: IP 프로토콜을 사용하는 통신과 관련된 프로토콜들을 모은 것. HTTP 포함
- TCP/IP 프로토콜이 4계층 구조로 구성된 이유
- 인터넷의 내부 사양이 바뀌었을 때 사양이 바뀐 해당 계층만 바꾸면 되기 때문에 유지보수 측면에서 이득
- 통신 기능이 있는 애플리케이션 개발시 통신 관련 세부 사항을 고려하지 않고 개발 가능
애플리케이션 계층
- 유저에게 제공되는 애플리케이션에서 통신의 움직임을 결정
- TCP/IP에서 제공하는 애플리케이션(프로토콜) 종류: FTP, DNS, HTTP 등
트랜스포트 계층
- 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름 제공
- 프로토콜 종류: TCP, UDP
네트워크 계층
- 네트워크 상에서 패킷(전송 데이터의 최소 단위)의 이동을 담당
- 어떠한 경로로 상대 컴퓨터로 데이터를 보낼지 결정
링크 계층
- 네트워크에 접속하는 하드웨어적인 면을 담당
- 종류: 디바이스 드라이버, 네트워크 인터페이스 카드, 케이블 등
HTTP를 이용한 TCP/IP 통신의 흐름
송신 과정
계층을 통과할 때마다 헤더 추가(캡슐화)
- 애플리케이션 계층: 웹 페이지를 보고싶다는 내용의 HTTP 리퀘스트(메시지) 지시 →TCP 헤더 추가
- 트랜스포트 계층: HTTP 메시지를 통신하기 쉽게 조각내어 안내 번호와 포트 번호를 추가해 네트워크 계층으로 전달 → IP 헤더 추가
- 네트워크 계층: 수신지의 MAC 주소를 추가해 링크 계층에 전달 → Ethernet 헤더 추가
- 링크 계층을 통해 송신 수행
수신 과정
계층을 통과할 때마다 헤더 제거(역캡슐화)
- 링크 계층 → Ethernet 헤더 제거
- 네트워크 계층 → IP 헤더 제거
- 트랜스포트 계층 →TCP 헤더 제거
- 애플리케이션 계층
아래는 TCP/IP에서 중요한 역할을 맡고 있는 대표 프로토콜 세 가지이다.
IP 프로토콜
개개의 패킷을 상대방에게 전달하는 것이 사용 목적인 프로토콜
- 작동에 필요한 요소: IP 주소(변경 가능), MAC 주소(변경 불가능)
- 송신자와 수신자 사이에 연결된 여러 대의 컴퓨터와 네트워크 기기를 중계(연결)하여 상대방에게 도착
ARP 프로토콜
- 중계 과정에서 다음으로 중계할 곳을 MAC 주소를 이용해 찾아가는 주소 해결 프로토콜. 수신자의 IP주소 이용
- 중계 과정에서 송신자와 수신자 사이 각 기기는 최종 목적지를 모른 채 다음 중계 목적지로 패킷 전송(택배 배송 과정과 흡사)
TCP 프로토콜
신뢰성 있는 바이트 스트림 서비스 제공
- 바이트 스트림 서비스: 용량이 큰 데이터를 TCP 세그먼트라고 불리는 작은 패킷으로 분해해 관리하는 서비스
- 신뢰성 있는 서비스: 상대방에게 무언가를 보낸 뒤 확인 과정까지 거치는 서비스
쓰리 웨이 핸드셰이킹
3개의 과정을 거쳐 확실한 데이터 전송 보장
- 송신 측에서 SYN 플래그로 상대에게 접속해 패킷 전송
- 수신 측에서 SYN과 ACK 플래그로 송신측에 접속하면서 패킷 수신한 사실을 전달
- 송신 측이 ACK 플래그를 보내 패킷 교환 완료
- 위 과정에서 통신이 끊기면 TCP는 위 과정을 1번부터 시행해 패킷 재전송
DNS 프로토콜
응용 계층 시스템에서 도메인 이름과 IP 주소 이름 확인을 제공하는 프로토콜
- 웹 브라우저: 친숙함을 위해 IP 주소 대신 도메인 주소 사용 → 도메인 주소로부터 IP주소를 알아올 방법 필요
DNS를 통한 IP주소 해결 과정
- 웹 브라우저가 DNS 서버에 도메인 주소를 통한 요청
- DNS 서버가 도메인 주소에 대응하는 IP 주소로 응답
- 응답받은 IP주소를 바탕으로 웹페이지에 요청(HTTP 메시지 작성 후 요청)
728x90