TCP/IP
- 현재 인터넷에서 널리 사용되는 프로토콜 모델
- 시스템 간 네트워크 연결과 데이터 전송에 사용됨
- 인터넷 통신을 위한 표준 프로토콜 모델로 사용됨
TCP/IP 4계층 구조⭐️
계층별 특징
네트워크 엑세스 계층(Network Access Layer)
- OSI 모델의 물리&데이터링크 계층에 해당
- 물리적 주소인 MAC 주소 사용
- 주요 프로토콜
- Ethernet: 물리 계층과 데이터링크 께층에서의 통신 접근 제어 정의
- X.25: 패킷 교환망을 통한 통신 인터페이스 제공
- RS-232C: DTE와 DCE 간 접속 규격
인터넷 계층(Internet Layer)
- OSI 모델의 네트워크 계층에 해당
- IP 패킷 전송 및 라우팅 기능 담당
- 주요 프로토콜
- IP: 비연결성 인터넷 프로토콜
- ICMP: IP 패킷 전송 중 에러 메시지 제공
- IGMP: 멀티캐스트 그룹 구성원 관리
- ARP: IP 주소를 MAC 주소로 변환
- RARP: 물리적 주소로부터 IP 주소 추출
전송 계층(Transport Layer)⭐️
- OSI 모델의 전송 계층에 해당
- 종단 간 신뢰성 있는 데이터 전송 관리
- 주요 프로토콜
- TCP
- 클라이언트와 서버 간 연결 설정 후 데이터 주고 받는 연결지향형 프로토콜
- 신뢰성 있는 데이터 전송 보장
- 순차적인 데이터 전송과 재조립 보장
- 연결 설정: 3-way handshaking
- 연결 해제: 4-way handshaking
- UDP보다 속도가 상대적으로 느림
- 순서 제어, 오류 제어, 흐름 제어 기능 제공 → 투명성
- 양방향 연결형 서비스 제공
- 가상 회선 연결 형태의 서비스 제공
- UDP
- 연결 설정 없이 데이터 주고 받는 비연결성 프로토콜
- TCP보다 빠른 전송 가능, 하지만 신뢰성 떨어짐
- TCP에 비해 단순한 헤더 구조로 오버헤드 적음
- 신뢰성 보다 속도가 중요시 되는 네트워크에서 사용
- 실시간 전송에 유리
- 패킷 유실 및 변조 발생해도 재전송 안함
- 헤더: Source Port, Destination Port, Length, Checksum, Data
응용 계층(Application Layer)
- OSI 모델의 세션&표현&응용 계층에 해당
- 사용자와 직접적으로 상호작용하는 계층
- 사용자가 소프트웨어 응용 프로그램을 통해 네트워크 서비스에 접근할 수 있게 해줌
- 응용 프로그램 간 데이터 교환에 사용되는 프로토콜 포함
- 주요 프로토콜
- TCP 프로토콜
- HTTP: 웹 서버와 클라이너튼 간 하이퍼텍스트 문서 송수신 프로토콜, 주로 80번 포트
- FTP: 파일 전송에 사용되는 프로토콜, 데이터 전송에 20번, 제어 정보 전송에 21번 포트 사용
- SMTP: 이메일 전송에 사용되는 프로토콜, 25번 포트 사용
- UDP 프로토콜
- DNS: 도메인 이름을 IP 주소로 변환하는 프로토콜, 53번 포트 사용
- SNMP: 네트워크 장비 관리에 사용되는 프로토콜
- DHCP: IP 주소 자동 할당 및 관리 프로토콜
IP(Internet Protocol)
IP의 특징
- 호스트 간의 통신을 담당하는 프로토콜
- OSI 7계층의 네트워크 계층(3계층)에 해당
- 데이터그램을 기반으로 하는 비연결형 서비스(비신뢰성) 제공
- 패킷의 분할/병합, 주소 지정, 경로 선택 기능(Routing) 제공
- 패킷 교환 네트워크에서 정보를 주고받는데 사용
- 흐름제어나 오류 복구 기능 없음
- Best Effort 원칙에 따른 전송 기능 제공
IP 헤더
- 버전(Version)
- 사용중인 IP 프로토콜의 버전(예: IPv4, IPv6)
- 헤더길이(Header Length)
- IP 헤더의 길이를 바이트단위로 나타냄
- 일반적으로 20~60 바이트
- 서비스 유형(TOS,Type of Servie)
- 전체길이(Total Packet Length)
- IP 헤더와 데이터를 포함한 전체 IP 패킷의 길이
- 식별자(Identifier)
- 각 데이터그램을 구별하기 위한 식별자
- 단편화된 데이터그램의 원래 그룹을 식별하는데 사용
- 플래그(Flags)
- 단편 오프셋(Fragmentation offset)
- 수명(TTL, Time to Live)
- 패킷이 네트워크를 통과할 수 있는 최대 라우터 수
- 라우터를 지날 때 마다 값이 감소되며 0이되면 패킷은 폐기됨
- 프로토콜(Protocol)
- IP 데이터그램의 페이로드에 포함된 상위 계층 프로토콜을 지정
- 체크섬(Header checksum)
- 발신지 주소(Source IP address)
- 목적지 주소(Destination IP address)
- 패킷이 도착해야하는 목적지의 IP 주소
- Total Packet Length (16 bits): IP 헤더 및 데이터를 포함한 IP 패킷 전체 길이를 바이트 단위로 길이를 표시. (최대값은 65,535 = 2^16 - 1)
TCP(Transmission Control Protocol)
TCP의 특징
- 연결형 서비스(신뢰성)를 제공하는 전송 계층 프로토콜
- OSI 7계층의 전송 계층(4계층)에 해당
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
- 스트림(Stream) 전송 기능 제공
- IP와 함께 사용되어 데이터의 배달 처리 및 패킷 추적과 관리 담당
TCP 헤더
- 송신지 포트(Source Port)
- 수신지 포트(Destination Port)
- 순서 번호(Sequence Number)
- 바이트 단위로 순서화된 번호
- 신뢰성 있는 전송과 흐름제어를 위해 사용
- 확인 응답 번호(Acknowledgment Number)
- 다음에 수신하길 기대하는 바이트 번호
- 마지막으로 수신된 번호 + 1
- 헤더길이(Header Length)
- 예약된 필드(Reserved)
- 윈도우 크기(Window)
- 검사합(checksum)
- 긴급 포인터
- 긴급 데이터가 시작되는 지점을 나타냄
- TCP Flags의 U와 함께 사용
- TCP Flags
- U(Urgent): 긴급 데이터 존재 여부
- A(Ack): 승인 비트, 응답 시 사용
- P(Push): 밀어넣기 비트, 데이터의 즉각적인 전송 요구
- R(Reset): 연결 초기화 비트
- S(Syn): 연결 성정을 위한 동기화 비트
- F(Fin): 연결 종료를 나타내는 비트