TCP / IP 4 layer

박주현·2022년 12월 22일
0

국비 공부

목록 보기
34/44

TCP/IP 4계층

응용 계층(Application Layer = OSI 7, 6, 5 layer)

응용 계층 프로토콜

  • SMTP (Send Mail Transfer Protocol) : 메일 전송(보내기) 프로토콜
  • POP3 (Post Office Protocol v3) : 메일 수신(받기) 프로토콜
  • IMAP (Internet Message Access Protocol) : 메일 수신(받기) 프로토콜

    POP3와 IMAP의 차이점 : 서버로부터 메일을 가져올때 차이 발생.
    POP3는 메일을 다운로드하면서 메일을 서버에서 삭제 했었음 (옵션으로 서버에서 삭제하지 않기가 있음)
    IMAP은 메일을 서버에 두고 읽어 오는 형태

  • HTTP (Hyper Text Transfer Protocol : 웹 전송 방식
  • HTTPS (Hyper Text Transfer Protocol Secure : HTTP를 평문 전송이 아닌 보안 전송
  • DNS (Domain Name System) : 도메인 이름(영역 이름)을 사람이 알기 쉽게 만든 사이트의 이름을 IP주소로 변환 시켜주는 프로토콜
  • telnet, ssh : 원격 터미널 접속 프로토콜(telnet 평문, ssh 암호)
  • FTP (File Transfer Protocol) : 파일 전송 프로토콜
  • SNMP (Simple Network Manage Protocol) : 서버나 네트워크 장비의 사용현황을 다른 서버에게 전달할 때 사용하는 프로토콜로 모니터링 용도로 많이 씀.
  • TFTP (Trivial FTP) : 간단한(Trivial) 파일 전송 프로토콜
    FTP는 인증을 해야지만 파일을 전송할 수 있고 인증을 위해서 TCP 프로토콜을 사용해야 함 하지만, TFTP는 인증없이 UDP를 이용해 간략하게 사용할 수 있는 파일 전송 프로토콜



TCP/IP 3계층 : Transport =OSI 4계층

TCP : Transfer Control Protocol
UDP : User Datagram Protocol

TCP와 UDP의 공통점

  • 응용계층 프로토콜을 port로 구분
  • segment 단위로 분할

TCP와 UDP의 차이점

  • TCP : 신뢰성 프로토콜
  • UDP : 비신뢰성 프로토콜

    신뢰성 : 전송 후 잘 받았는지 확인
    비신뢰성 : 전송 후 잘 받았는지 확인하지 않음

  • TCP : 연결지향형(Connection-Oriented)
  • UDP : 비 연결지향형(Connectionless)

응용 프로토콜 중 TCP 통신을 하는 프로토콜은 응용프로토콜이 가동되기 전에 TCP를 이용해 session을 연결 후에 전송하기 시작 전송이 끝나면 연결을 끊는 finish 명령과 함께 종료 시킴

TCP는 세션을 만듬 -> 소켓 버퍼 -> 버퍼에서 분할과 재조립
Tx 버퍼, Rx 버퍼를 만듬
IP는 어떡하면 빨리 보낼까 생각만 하기때문에 패킷이 어떻게 들어올지 모름 그렇기 때문에 Rx 버퍼에서 순서대로 재조립 함.
보낼때는 순서를 붙여서 보내야하기 때문에 Tx버퍼에서 순서를 붙여줌.

TCP는 분할 재조립 시 순서에 따라 분할 재조립
UDP는 받는 순서대로 처리

TCP는 신뢰성이 있기 때문에 에러와 흐름 제어를 하지만 UDP는 하지 않음

TCP는 Stateful protocol
UDP는 Stateless protocol

TCP는 Overhead가 많이 발생 UDP는 Overhead가 적게 발생

TCP는 일반적인 문서가 중요한 프로토콜에 사용
UDP는 실시간 서비스 프로토콜에 사용

세션이 연결 된 상태란?
클라이언트와 서버간 통신 인증이 된 상태
이 상태에서 데이터 송수신이 가능함

세선 정보
한 세션 내에서 클라이언트가 서버에 전송할 데이터 정보를 의미
서버는 세션 유지 시간이 끝나거나 클라이언트가 전송하려했던 데이터를 모두 수신할 때까지 클라이언트와의 세션 상태를 유지

stateful(상태유지) : 세션이 종료될 때까지 클라이언트의 세션 정보를 저장하는 프로토콜
브라우저 : 쿠키
서버나 클라이언트 : 메모리(버퍼)

stateless(무상태) : 서버가 클라이언트의 세션 상태 및 정보를 저장하지 않는 네트워크 프로토콜

인터넷 계층 ( Internet Layer = OSI 3계층 Network Layer)

ICMP (Internet Control Message Protocol)

IP 통신이 정상적으로 되는지 체크 응용 프로그램

3계층을 이용해서 통신을 확인

Type Code : Type과 Code를 통해 특정 host, network가 정상적으로 통신이 되는지 확인할 때 주로 사용

  • PING 8.8.8.8 (8.8.8.8): 56 data bytes
    64 bytes from 8.8.8.8: icmp_seq=0 ttl=111 time=49.116 ms
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=111 time=50.352 ms

IGMP (Internet Group Management Protocol)

멀티 캐스트 통신을 할 때 그룹 관리를 위해 사용되는 Protocol

IP 상위에 있는 프로토콜로 IP가 작동하지 않으면 ICMP와 IGMP는 작동하지 않음.

ARP (Address Resolution Protocol)

IP 주소와 L2주소(ethernet, Mac주소)를 Mapping 시키는 프로토콜로 IP 주소는 알지만 MAC 주소를 모르는 경우 해당 IP 주소의 MAC 주소가 무엇인지 알기 위해 ethernet에서는 자동으로 ARP가 작동해 MAC 주소를 알아오는 것 즉, IP 주소로 MAC 주소 변환

RARP ( Reverse ARP)

MAC 주소로 IP 주소로 변환 (IP 주소와 MAC 주소 DB 구축이 필요함)

GARP (Gratuitous ARP)

ARP는 IP 주소로 MAC 주소 변환(찾는 것) IP 주소를 설정하면 설정된 IP 주소로 ARP를 보냄,

그러면 IP 충돌여부를 확인 할 수 있음

Proxy-ARP

MAC 주소를 대행해주는 ARP를 Proxy ARP

IP : 인터넷에 연결이 된 장치들을 찾아갈 수 있도록 만든 프로토콜로 장치들을 구분하기 위한 ID로 IP 주소를 사용

Proxy : 특정 주소나 서비스를 대행하는 서비스

TCP / IP 1계층 네트워크 인터페이스 계층 (OSI 7계층 L2, L1)

TCP / IP 에서는 네트워크 인터페이스 계층 따로 지정하지 않았으며 현재는 ethernet으로 전부 통일이 되었다고 봐도 무방

ethernet은 무선 기술에까지 적용해서 사용하고 있음.

= 각 계층 별 주소가 사용되는 지점

  1. L7 ⇒ Application Protocol로 구분하고 Application을 가동하면 port를 Listen 상태로 열어둠

  2. L3 ⇒ Port 주소를 이용해 L7 Application 구분 (상위 계층은 하위 계층에게 어떤 프로토콜인지 알려줌,

    하위 계층은 상위 계층에게 전달하기 위해 어떤 프로토콜인지 알아야함.) (서비스 대 서비스 전달)

    프로세스 대 프로세스 전달을 담당

  3. L3 ⇒ IP 주소 상위 프로토콜을 알려주는 field IP Protocol : 0~255 사이 번호 사용해서 구분 (참고 : ICMP 1 IGMP 2 TCP 6 UDP 17) IP 주소를 이용해 같은 네트워크인지 다른 네트워크인지를 판단하고 Routing Table을 확인해 어떤 인터페이스(출구) 로 나가는지를 지정해주게 됨

  4. L2 ⇒ ethernet 기준으로 MAC 주소를 이용해 같은 네트워크의 통신을 담당하고 IP 주소와 MAC 주소는 Mapping이 되어 있어야 하고 Mapping이 된 Table을 ARP Table 이라고 함 이 테이블에 IP 주소와 MAC 주소가 Mapping 되어 있지 않으면 ARP로 MAC주소를 확인 후 전송

    같은 네트워크를 통신하는 이유는 ARP가 Broadcast Frame으로 전송을 하기 때문에 라우터에 의해 브로드 캐스트가 분리되기 때문에 같은 네트워크 통신을 담당

  5. 서버나 PC의 IP 설정

    IP 주소 : 해당 네트워크 유일한 주소를 사용해 host 구분

    라우팅 테이블도 생성 (같은 네트워크에 대한 라우팅 테이블이 생성 됨)

    SubnetMask : 같은 네트워크인지 다른 네트워크인지 판단

    Gateway : 게이트웨이를 등록하면 0.0.0.0/0 (default route)가 생성이 되고 모든 IP 주소를 뜻하는 주소로 해당 게이트웨이로 가면 다른 네트워크로 갈 수 있도록 안내를 해주며 만약 해당 네트워크가 없다면 ICMP로 destination host unreachable이라는 Message를 보내고 packet은 출구가 없기 때문에 Drop 됨

  1. DNS 주소 : IP 주소가 아닌 형태의 주소로 통신을 하는 경우 DNS Server 질의를 해서 IP 주소를 알아오기 위한 서버 지정

1.0.0.0 ⇒ 네트워크 주소

1.255.255.255 ⇒ 해당 네트워크 브로드캐스트 주소

172.16.0.10 ⇒ 네트워크 주소는 172.16.0.0

172.16.255.255 ⇒ 해당 네트워크 브로드캐스트 주소

0개의 댓글