TCP(Transmission Control Protocol)/IP(Internet Protocol)

2023. 6. 16. 20:06학습/Computer Science

TCP(Transmission Control Protocol)/IP(Internet Protocol)

  1. 정의
    • 전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)의 약자를 표현한 것으로 인터넷 프로토콜 스위트(모음, 세트)라고도 한다.
    • 데이터를 응용 프로그램에 맞추어 송수신하기 위한 프로토콜 및 필수 요건으로 4계층(응용, 전송, 인터넷, 네트워크 인터페이스)으로 구성되어 OSI 7계층 모델을 대체할 수 있다.
    • TCP, IP뿐만 아니라 인터넷 관련 프로토콜을 총칭하는 용어
  2. 응용 계층
    1. 전자 우편 (E-mail)
      1. SMTP(Simple Mail Transfer Protocol), POP3(Post Office Protocol3), MIME(Multipurpose Internet Mail Extensions), IMAP(Internet Messaging Access Protocol) 등의 프로토콜을 사용한다.
      2. SMTP : 수신측 이메일 서버로 전송
      3. POP3: 수신측 이메일 서버에서 컴퓨터로 다운로드
      4. MIME : 멀티미디어 메일을 주고받기 위한 프로토콜
      5. IMAP : 이메일 서버에서 메일의 헤더를 분석하여 수신하기 전에 처리(분류, 삭제 등)
      6. S/MINE : 전자 우편의 낮은 보안성을 보완하기 위해 메시지 기밀성, 무결성, 사용자 인증, 부인방지 등의 기능을 제공하는 보안 프로토콜
    2. 원격 제어
      1. telnet(Tele Network) : 23번 포트, 데이터를 평문으로 전달
      2. SSH : 22번 포트, 데이터를 암호화하여 전달
    3. 웹 서비스(WWW : World Wide Web)
      1. 웹 상에서 일반 데이터 및 멀티미디어 데이터를 송수신하는 광역 정보 서비스
      2. SSL(Secure Socket Layer) 계층의 포함 여부에 따라 HTTP(HyperText Transfer Protocol)와 HTTPS(Secure)로 나뉜다. (cf. SSL = TLS)
      3. HTTP : 80번 포트, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용되는 프로토콜
      4. HTTPS : 443번 포트, HTTP에 SSL 계층을 포함하여 보안 기능이 강화된 프로토콜
      5. S-HTTP : 제공되는 페이지만 암호화(HTTPS는 전체 통신 내용 암호화)
    4. 파일 전송(FTP : File Transfer Protocol)
      1. 인터넷 환경에서 파일을 업로드/다운로드 할 수 있도록 하는 프로토콜
      2. 익명으로 이용 가능하며 파일 타입에 따라 전송모드를 다르게 설정
        1. Anonymous FTP : 익명 TFP
        2. T(Trival)FTP : FTP 보다 더 단순한 방식의 간단한 파일 전송 프로토콜
        3. Text(ASCII) Mode : 문서 파일 전송
        4. Binary Mode : 이미지 파일 전송
        5. R(Real-time)TP : 네트워크 상에서 멀티미디어를 전달하기 위한 통신 프로토콜
  3. 전송 계층
    1. TCP (Transmission Control Protocol)
      1. 불안정한 인터넷 프로토콜(IP) 위에서 애플리케이션이 안정적으로 데이터를 송신하는 방법을 제공한다.
        • 주소 지정, 다중화, 연결 유지, 패키징, 전송, 품질 관련 서비스, 흐름 제어 등
      2. 신뢰성 높은 데이터 전송을 위해 다양한 기능을 제공하므로 복잡한 프레임 구조를 가진다.
        • Source/Destination Port(16/16bit) : 출발지/목적지 포트 번호
        • Sequence Number(32bit) : TCP 세그먼트를 식별, 재배열하기 위한 고유번호(Byte 단위로 증가)
        • Acknowledge Number(32bit) : 수신된 Sequence Number에 대한 다음 수신 패킷의 번호
        • Header Length(4bit) : TCP 헤더 길이 지정(4Byte 단위)
        • Reserved(6bit) : 사용되고 있지 않은(예약된) 필드
        • Flag Field(6bit) : URG(긴급), ACK(응답), PSH(바로 전송), RST(리셋), SYN(동기화), FIN(종료)
        • Window size(16bit) : TCP 최대 수신 버퍼 크기 (0~65535)
        • Checksum(16bit) : TCP 헤더와 데이터 무결성 보장을 위한 에러 검출
        • Urgent Point(16bit) : URG 플래그 비트가 사용된 경우 긴급 데이터 처리용 필드
      3. 두 단말기 간 논리적 연결을 설정하여 데이터를 패킷 단위로 교환한다.
      4. 지연시간 발생 이유 ? - 연결형 프로토콜로 통십 수립 단계(3-way 핸드셰이킹) 때문.
        1. 수신측에 SYN을 1로설정하여 전송
        2. 수신측은 1(SYN)을 받은 경우 SYN과 ACK를 1로 송신측에 전달
        3. 송신척은 1(SYN, ACK)을 받은 경우 ACK를 1로 설정하여 수신측에 전달하여 통신 수립 성공
    2. UDP(User Datagram Protocol)
      1. 신뢰성을 보장하지 않는 비연결성(비접속형) 통신을 제공하는 프로토콜.
      2. 흐름 제어 및 순서 제어가 없어 전송속도는 빠르지만 신뢰성 보장이 어렵다.
      3. 스트리밍 서비스 처럼 하나의 정보를 다수의 인원이 수신해야 하는 경우에 적합한 프로토콜
      4. 신뢰성 제공을 위한 기능이 없어 상대적으로 간단한 프레임 구조.
        1. Source/Destination Port(16/16bit) : 출발지/목적지 포트 번호
        2. UDP length : UDP 헤더와 데이터를 합친 길이
        3. UDP checksum : UDP 헤더와 데이터를 모두 포함하여 체크
      5. UDP 상에서 동작되는 프로토콜은 TFTP, SNMP, RIP, NTP, RTP 등이 있다.
        1. TFTP (Trivial File Transfer Protocol) : 간단한 파일 전송
        2. SNMP(SImple Network Management Protocol) : 네트워크 관리 및 감시를 위해, 관리 정보 및 정보 운반
        3. RIP(Routing Information Protocol) : 소규모 또는 교육용 등의 간단한 네트워크에 사용되는 라우팅 프로토콜
        4. NTP(Network Time Protocol) : 컴퓨터 시간을 최상위 동기 클럭원에 동기화하는 프로토콜
        5. RTP(Realtime Transport Protocol) : 실시간 전송 지원 표준화를 위한 프로토콜
  4. 인터넷 계층
    1. IP (Internet Protocol)
      1. 패킷 교환 네트워크에서 송수신 단마릭 간 정보를 주고받는 데 사용하는 정보위주의 프로토콜이다.
      2. 데이터는 패킷 또는 데이터그램 단위로 나누어 전송되며 별도의 경로 설정이 필요 없다.
      3. 비신뢰성과 비연결성이 특징으로, 패킷 전송 여부와 정확한 순서를 보장하려면 IP의 상위 프로토콜인 TCP를 사용해야 한다.
      4. IP 의 주소 체계는 IPv4, IPv6로 나뉘며 각각 별도의 헤더 구조를 가진다.
      5. 물리적 주소(MAC)와 논리적 주소(IP)를 서로 변환해주는 프로토콜을 사용
        1. ARP(Address Resolution Protocol) : IP주소를 네트워크 접속 장치(MAC)주소로 변환
        2. R(Reverse)ARP : 네트워크 접속 장치(MAC)주소를 IP주소로 변환
      6. IP 패킷을 처리할 때 발생할 수 있는 오류에 대한 정보를 제공할 수 있는 ICMP(Internet Control Message Protocol)를 사용한다.
        1. ICMP : 네트워크에 연결된 단말기의 운영체제에서 오류 메시지를 수신하는 데 사용
      7. IPv4의 헤더 구조
        • Version(4bit) : IP 버전
        • Header LENgth(4bit) : 헤더의 길이를 4바이트(32비트) 단위로 표현
        • TOS(8bit) : 서비스 요구사항(처리량, 전송 지연, 신뢰성, 우선 순위 등)
        • Total Length(16bit) : IP 패킷의 길이를 바이트 단위로 표현
        • Fragment ID(16bit) : 패킷이 분할된 경우 재조립을 위한 식별 요소
        • Fragment Flags(3bit) : 분할 여부, 이후 분할 패킷이 남아있는지 여부
        • Fragment Offset(13bit) : 분할 전 데이터의 바이트 범위
        • Time To Live(8bit) : IP 패킷의 수명
        • Protocol ID(8bit) : 포함된 상위 계층 프로토콜
        • Header Checksum(16bit) : 헤더에 대한 오류 검출
        • Source/Destination Address(32/32bit) : 송수신측 IP주소
      8. IPv6의 헤더 구조(기본, 확장 헤더를 포함하지 않는 경우)
        • Version(4bit) : IP 버전
        • Traffic Class(8bit) : 서비스 요구사항(처리량, 전송 지연, 신뢰성, 우선순위 등)
        • Flow Lable(20bit) : IP를 연결 지향적 프로토콜처럼 사용
        • Payload Length(16bit) : 페이로드(확장 헤더 + 상위 계층 데이터)의 바이트 단위 길이, 최대 2^16
        • Next Header(8bit) : 확장 헤더 종류
        • Hop Limit(8bit) : IP 패킷의 수명
        • Source/Destination Address(128/128bit) : 송수신측 IP주소
    2. DNS(Domain Name Service)
      1. 문자열로 구성된 도메인 네임을 숫자로 된 IP주소로 변환해 주는 서비스이다.
        • Domain Name : 숫자로 구성된 IP주소를 문자열의 구성으로 변환한 것
      2. 도메인 네임은 고유해야 하며 공백 없이 문자 및 숫자를 이용해 구성된다.
      3. 각 지역의 NIC(Network Information Center)를 통해 도메인 네임을 관리한다.
        • InterNIC : 국제 도메인 관리 센터
        • APNIC : 태평양 도메인 관리 센터
        • KRNIC : 한국 도메인 관리 센터
    3. IPSec(IP Security)
      1. 보안에 취약한 구조를 가진 IP를 개선하기 위해 IETE에서 설계한 표준
      2. IPv4에서는 보안이 필요한 경우에만 선택적으로 사용하였지만 IPv6부터는 기본 스펙에 포함
      3. IP 계층에서의 보안성 제공을 위해 AH, ESP, IKE 프로토콜로 구성된다.
        • AH(Authentication Header) : 발신지 인증, 데이터 무결성만을 보장
        • ESP(Encapsulating Security Payload) : 발신지 인증, 데이터 무결성, 기밀성 모두를 보장
        • IKE(Internet Key Exchange) : 보안 관련 설정들을 생성, 키 교환
      4. IPSec의 동작 모드는 전송 모드와 터널 모드로 나뉜다.
        • 전송 모드(Transport Mode) : IP 헤더를 제외한 IP 패킷의 페이로드(Payload)만을 보호
        • 터널 모드(Tunneling Mode) : IP 패킷 전체를 보호
728x90