리팩토링

리팩토링 6주차 OSI 7계층 프로토콜

idea5021 2024. 8. 23. 14:11
목차

1, 2계층 프로토콜


3계층 프로토콜


4계층 프로토콜


5, 6, 7계층 프로토콜



 

 

osi 7계층 tcp/ip 4계층 프로토콜
응용계층 응용 계층 TCP - HTTP, FTP, SMTP, TELNET

UDP - DNS, SNMP, DHCP
표현계층
세션계층
전송계층 전송 계층 TCP, UDP
네트워크 계층 인터넷 계층 IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층 네트워크 엑세스 계층  Ethernet, X.25, RS-232C
물리 계층

 

 

 

 

1, 2계층 프로토콜

  • Ethernet
    • 컴퓨터 네트워크 기술의 하나로, 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격이다.
    • 이더넷은 OSI 모델의 물리 계층에서 신호와 배선, 데이터 링크 계층에서 MAC 패킷과 프로토콜의 형식을 정의한다.
    • 네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고 이 주소를 이용해 상호간에 데이터를 주고 받을 수 있도록 만들어졌다.
    • CSMA/CD (반송파 감지 다중 접속 및 충돌 탐지) 기술을 사용한다. 이 기술은 이더넷에 연결된 여러 컴퓨터들이 하나의 전송 매체를 공유할 수 있도록 한다.
    •  현재 가장 널리 사용되고 있다.

 

  • X.25
    • 1970년대 후반에 개발된 공중 데이터 네트워크(패킷교환망)에 대한 최초의 표준
    • 오늘날 거의 사라졌다.

 

  • RS-232C
    • 1969년 EIA에 의해서 발표된 규격
    • 데이터 터미널 장비(DTE)와 데이터 통신장비(DCE)의 인터페이스에 대한 전기적 특성을 정의하는 것
    • 시리얼 포트로 사용되기도 하고 컴퓨터가 외부와 데이터를 주고 받기 위한 장비이다.

 


 

3계층 프로토콜

  • IP(Internet Protocol)
    • 송신 호스트와 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 
    • IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송된다.
    • IP에서는 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다.
    • 비신뢰성과 비연결성
      -흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 뜻
      -패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다.

 

 

 

 

  • ICMP(Internet Control Message Protocol)
      

ipv4패킷

  • 인터넷상에서 서로 간에 통신을 할때 제어를 하면서 발생하는 여러가지 상황들을 메시지의 형태로 알려주는 역할을 하는 프로토콜(오류가 나면 오류에 대해 보고하고 어떻게 해야하는지 가이드까지 해주고 정상적일때도 정상적이라고 반환해줌) , IP 패킷내에 캡슐화가 된 후에 전달된다. (protocol type=1일 경우  ICMP 사용)
    EX)만약 장치에서 데이터 패킷을 전송한 후 라우터가 수신하지만 패킷이 너무 크거나 기타 결함이 있는 등의 이유로 거부되면 라우터는 오류를 보고하는 ICMP 메시지를 다시 보낸다. 
  • 주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는데 사용된다.
  • 일반적으로 라우터와 같은 네트워크 장치에서 사용이 된다.
  • ICMP는 오류 보고 및 테스트에 아주 중요하지만, 분산 서비스 공격(Ddos) 공격에도 사용될 수 있다.
  • 주요목적은 오류 보고이다. 두 장치가 인터넷을 통해 연결되면 ICMP는 데이터가 의도한 대상에 도달하지 못한 경우 전송하는 장치와 공유할 오류를 생성한다.
  • 보조용도는 네트워크 진단을 수행한다.
    EX) traceRoute(라우터의 추적 경로 도구), ping(응답이 걸리는 시간)

 

 

 

  • ICMP 작동원리
    • 인터넷프로토콜(IP)와 달리 TCP, UDP와 같은 전송 계층 프로토콜과 연결되지 않는다.(=무연결 프로토콜)
    • 따라서 ICMP가 연결이 없는 프로토콜이 되므로 한 장치에서 ICMP 메시지를 보내기 전에 다른 장치와의 연결을 수행할 필요가 없다.
    • 일반 IP 트래픽은 TCP를 사용하여 전송하는데 이는 데이터를 교환하는 두 장치가 먼저 TCP 핸드셰이크를 수행하여 두 장치 모두 데이터를 수신할 준비가 되었는지 확인함을 의미한다.
    • 하지만 ICMP는 이러한 방식으로 연결을 수행하지 않는다.
    • 메시지가 간단히 전송될뿐, 정보가 전송되는 포트를 지정하는 TCP 및 UDP와 달리 ICMP 메시지에는 정보를 수신할 장치의 특정포트로 지시하는 정보가 없다.

 

  • ICMP Type
TYPE Message 설명
0 Echo Reply Echo 메시지 응답
3 Destination unreachable 목적지 도달 불가
4 Source quench 혼잡제어 용도(현재는 사용 X)
5 Redirect 더 빠른 경로가 있다고 알려주는 용도
8 Echo Request Echo 메시지 요청
11 Time Exceeded TTL이 초과됨

 

  • Error Type 3 : Destination Unreachable(목적지 도달 불가)
    • Code 0 : Network 도달 불가 -> Network ID 문제
    • Code 1 : Host 도달 불가 -> Host ID 문제
    • Code 2 : Protocol 도달 불가 -> Protocol 타입 문제
    • Code 3 : Port 도달 불가 -> Port Number가 잘못되어있을 경우
    • Code 4 : IP 헤더의 Don't Fragment 플래그가 설정되어 단편화를 할 수 없는 경우
    • 등등 총 15가지 코드가 있다.
  • Error Type 4 : Source Quench
    • 이 타입은 더이상 사용되지 않는다.
    • TCP가 혼잡제어를 지원하고 UDP는 혼잡제어를 하지 않기 때문이다.
  • Error Type 5 : Redirect
    • 현재 진행 상황이 최적의 경로로 가는 것이 아닌 것임을 알 때, 이 에러 메시지가 나온다.
  • Error Type 11 : Time Exceeded
    • Code 0 : Time To Live 필드가 0이 되어서 데이터그램이 폐기된 경우에 발생
    • Code 1 : 지정된 시간내에 패킷이 도착하지 않아 재조립에 실패 했을 경우에 발생

 

 

 

 

  • IGMP(Internet Group Management Protocol)
    • 인터넷 그룹 관리 프로토콜로 여러 장치가 하나의 IP 주소를 공유하여 모두 동일한 데이터를 수신할 수 있도록 하는 프로토콜
    • IPV4를 사용하는 네트워크에서 멀티캐스팅을 설정하는데 사용되는 네트워크 계층 프로토콜

*멀티캐스팅 : 장치 그룹이 동일한 메시지 또는 패킷을 수신하는 경우

 

 

  • ARP(Address Resolution Protocol)
    • 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응 시키기 위해 사용되는 프로토콜
    • IP -> MAC
  • RARP(Reverse Address Resolution Protocol)
    • 목적지 호스트 MAC 주소는 아는데, IP 주소를 모를 경우에 MAC주소를 IP주소로 변환해주는 프로토콜
    • MAC -> IP

 

4계층 프로토콜

  • TCP
    • 장비들 간의 통신 과정에서 정보를 안정적으로, 순서대로, 에러없이 교환할 수 있도록 하는 것에 목적을 둔 프로토콜
  • UDP
    • 보안과 신뢰성 대신 전송 속도와 효율성이 더 중요한 경우에 데이터를 전송하기 위해 사용하는 프로토콜

 


 

5, 6, 7 계층 프로토콜

  • DNS(Domain Name System)-53
    • 인터넷 사용자가 숫자 IP 주소 대신 호스트 이름을 사용하여 인터넷을 탐색할 수 있도록 하는 프로토콜
  • SNMP(Simple Network Management Protocol)-161, 162
    • UDP/IP를 사용하여 이더넷 연결을 통해 네트워크 관리 작업을 수행하는 응용계층 프로토콜
  • DHCP(Dynamic Host Configuration Protocol)-67
    • 해당 IP주소와 기타 관련 구성 정보(서브넷 마스크, 기본 게이트웨이)를 IP 호스트에 자동으로 제공하는 클라이언트/서버 프로토콜

 

  • HTTP(Hypertext Transfer Protocol)-80
    • 월드 와이드 웹의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는데 사용이된다.
    • 네트워크 장치 간에 정보를 전송하도록 설계된 응용계층의 프로토콜

 

  • FTP(File Transfer Protocol)-20,21
    • TCP/IP 네트워크에서 컴퓨터 간의 파일 공유에 사용되는 프로토콜
    • 20번 포트는 데이터 전송을 위해 사용(데이터 채널), 21번 포트는 명령과 응답 등의 제어정보를 위해 사용(제어 채널) -> 둘다 활성화가 되어있어야함
    • 클라이언트-서버 모델을 기반으로 작동되며 클라이언트가 서버에 접속하여 파일을 업로드하거나 다운로드할 수 있다.
    • 무차별 대입공격, 스푸핑 공격 같은 보안 취약점이 존재한다.

 

1)Active Mode 동작방식

Active Mode 동작방식

 

(1)클라이언트는 서버의 21번 포트로 접속한 후에 자신이 사용할 두번째 포트를 서버에 미리 알려준다.

(2)서버는 클라이언트의 요청에 응답한다.

(3)서버는 20번 데이터포트로 클라이언트가 알려준 두번째 포트로의 접속을 시도한다.

(4)클라이언트는 서버의 요청에 응답한다.

 

액티브 모드는 클라이언트가 서버에 접속을 하는 것이 아닌 서버가 클라이언트에 접속을 하는 것을 확인할 수 있다.

만일 FTP 클라이언트에 방화벽이 설치되어 있는 등 외부에서의 접속을 허용하지 않는 상황이라면 FTP 접속이 정상적으로 이루어지지 않을 것이다.

 

2) Passive 모드

Passive Mode

 

Active 모드의 단점을 해결하기 위해 Passive Mode가 나왔다.

(1) 클라이언트가 커맨드 포트로 접속을 시도

(2) 서버에서는 사용할 두 번째 포트를 클라이언트에게 알려줌

(3) 클라이언트는 다른 포트를 열어 서버가 알려준 포트로 접속을 시도

(4) 서버가 클라이언트의 요청에 응답

 

Passive Mode에서는 Active 모드에서 사용했던 20번 포트를 사용하지 않고 1024번 이후의 임의의 포트를 데이터 채널 포트로 사용한다. (1024~65535)

 

3) 주의사항

Active Mode의 경우는 클라이언트 측의 방화벽에 20번 포트가 차단되어 있다면, 데이터 채널 연결이 불가능해진다.

따라서 서버측은 20번 포트를 아웃바운드 허용, 클라이언트는 인바운드 허용이 방화벽 설정에 필요하다.

 

Passive Mode의 경우는 서버 측의 데이터 채널 포트가 막혀있는 경우 데이터 채널 연결이 불가능하게 되므로 데이터 채널 포트 범위를 지정하여 특정 범위의 포트만 허용해줘야한다.

 

 

 

  • TELNET-23
    • 로컬영역이나 인터넷에 있는 원격 시스템의 가상 터미널을 제공하는 클라이언트와 서버 간 응용 프로토콜

 

 

  • SMTP(Simple Mail Transfer Protocol)-25
    • 네트워크를 통해 전자우편(이메일)을 전송하는 기술 표준
    • 컴퓨터와 서버는 SMTP를 이용하여 기반 하드웨어나 소프트웨어와 관계없이 데이터를 교환할 수 있다.
    • SMTP 덕분에 이메일이 발신자에게서 수신자에게로 이동하는 방식이 표준화되므로 광범위하게 이메일을 전송할수있다.
  • IMAP(Internet Access Message Protocol)-143
    • 메일 서버 또는 서비스에서 전자메일을 수신하는데 사용되는 프로토콜
    • 메일 서버에서 전자메일을 관리하고 메일 수신 처리 및 검색을 지원하며 이메일 전송은 지원하지 않음
    • 서버에 접속시 동기화가 이루어짐
    • 대부분의 IMAP은 다중 로그인을 지원하기 때문에 사용자는 여러 디바이스를 통해 이메일 서버에 동시에 연결해 이메일을 확인할 수 있음
    • 이메일을 받아온 후 메일서버에서 원본을 삭제하지 않음 => 메일서버에 수신메일이 쌓여있어서 서버가 탈취당하면 개인정보나 금융정보가 유출될 수 있기에 POP3가 보안에  더 안전한 방식이다.
    • 포트 993은 IMAP용 보안 포트 TLS/SSL 암호화를 통해 작동
  • POP3(Post Office Protocol Version 3)-110
    • 전자메일 서버에서 전자메일이 수신되는 단방향 (서버->클라이언트로 이메일을 다운받음) 프로토콜
    • 한 대의 pc에서만 사용할 수 있고 양방향으로 이메일이 동기화되지 않는다.
    • 대신 이메일이 다운로드되면 새 이메일을 다운로드할 빈도를 결정할 수 있음
    • 이메일을 받아온 후 메일 서버에 있는 원본을 삭제함, 설정으로 삭제가 안되게 할수있음
    • 사용자가 하나의 컴퓨터에서 오프라인으로 메일에 액세스 해야 하는 경우에 적합
    • 암호화된 포트는 995 TLS/SSL을 통해 작동
    • 메일서버에 원본을 삭제하기때문에 IMAP보다 보안에 더 안전한 방식이다.

 

 

 

SMTP&POP3(IMAP)의 조합

 

 


참고문헌

https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/internet-control-message-protocol-icmp/

http://www.ktword.co.kr/test/view/view.php?no=5465

https://maker5587.tistory.com/7#ICMP%20(%20Internet%20Control%20Message%20Protocol%20)-1

https://www.siteground.com/tutorials/email/protocols-pop3-smtp-imap/