TIL #4 [CS] Network + 포트포워딩 실습

eunseo·2021년 8월 8일
1

TIL

목록 보기
4/9
post-thumbnail
1. Protocol
2. OSI 7계층 
3. Port, well known port
4. HTTP, URL
5. TCP/IP
6. UDP / TCP 차이
7. SSH, Telnet
8. DNS
9. 공인 IP, 사설 IP
10. 포트포워딩

Protocol

  • 이종(다른 제조사)의 시스템 간에도 통신이 가능하게 하기 위해 만든 일련의 표준, 협약을 프로토콜이라 한다.
  • 언어의 차이를 극복하기 위하여 국제 공용어가 필요하듯 네트워크에도 프로토콜( 통신을 하기 위한 약속 )이 필요하다.

    사진 출처 https://helloworld-88.tistory.com/146

OSI 7계층

배경

  • 1977년 국제표준화기구(ISO)에서 제정하고, 6년 뒤 1983년 완성했다.
  • 통신의 효율성을 높이고자 통신 과정을 7개 계층으로 구분된다.
  • 각 단계의 프로토콜과 서비스를 표준화한 네트워크 모델이다.

목적

  • 둘 이상의 디바이스에서 서로 연결하기 위한 것이며, OSI 7계층은 서로 연결하기 위해 일어나는 일들을 과정에 따라 구분한 단계라고 생각하면 이해하기 쉽다.

OSI 7계층 데이터 전달 원리

  • 송신 측 시스템은 각 계층에서 데이터에 헤더를 씌우는 과정(캡술화 Encapsulation)
  • 수신 측 시스템은 각 계층에서 헤더를 제거하는 과정
    (캡슐 해제 Decapsulation)

여기서 잠깐!

중계기(교환기)에서 네트워크 계층까지 헤더를 제거하는 이유는?

  • 목적지까지 가기 위해 다음 어느 노드로 보내야 하는지 봐야 하기 때문이다. 즉, 네트워크에 목적지 노드 정보가 있기 때문이다.

지금부터 각 계층에 대해 더 자세히 살펴보자.

응용 계층 - Application layer

응용 계층은 사용자 인터페이스이다. 사람이 인식하고 다른 계층들과 상호작용 할 수 있도록 사용자에게 보여주는 역할을 한다. 우리가 흔히 사용하는 응용 프로그램 그 자체라고 생각해도 된다. 다만 여기에서 말하는 응용 프로그램은 GUI에만 국한되지 않으며, FTP 같은 파일 전송 프로토콜을 사용하는 것도 응용 계층이라고 말한다.

표현 계층 - Presentation layer

표현 계층은 데이터의 표현 차이에 대한 문제를 해결하는 역할을 하는 계층이다. 인코딩, 암호화, 복호화 등의 일들을 이 계층에서 수행된다. 예를들면 흔히 아는 UTF-8 과 ASCII 등 인코딩 방식이다.

세션 계층 - Session layer

  • 송/수신 측 사이에 프로세스를 서로 연결,유지,해제 하는 역할을 한다.
  • 프로세스 간 데이터를 전송하는 방식을 결정(전이중/반이중 방식)한다.

전송 계층- Transport layer

전송 계층은 신뢰성있는 데이터를 주고 받을 수 있도록 해주는 계층이다. 오류 발생 시 링크 회복, 신뢰성, 흐름 제어, 다중화, 무결성 보장 등의 서비스를 제공한다.
TCP/UDP가 대표적인 전송 프로토콜이다.

네트워크 계층 - Network layer

네트워크 계층은 라우팅을 포함한 패킷 포워딩을 담당하는 계층이다. 라우팅이란 어떤 네트워크 안에서 데이터를 전송할때 경로를 선택하는 과정을 의미하는데 간단히 이 데이터가 어떤 길로 이동할지 정해준다고 생각하면 된다.

이 계층에서는 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 수정하는 역할을 담당한다. 이를 오류 수정이라고 하는데, 데이터를 전달 받다가 연결이 불안정하거나 끊어지는 등 데이터에 직접적으로 영향을 줄 수 있는 오류를 감지하고, 만약 발견된다면 해당 데이터를 폐기시킨다.

물리 계층

  • (송신)데이터(0과1로 구성된 bit열) -> 전기 신호로 변환한다.
  • (수신)전기 신호 -> 데이터(0과1로 구성된 bit열)로 변환한다.

모뎀은 무엇일까?
모뎀(MODEM, MOdulator and DEModulator)은 정보 전달(주로 디지털 정보)을 위해 신호를 변조하여 송신하고 수신측에서 원래의 신호로 복구하기 위해 복조하는 장치를 말한다. 주로 컴퓨터 정보통신을 위한 주변기기로 많이 사용한다. 변조를 하는 이유는 전송선에 디지털 신호를 바로 보내면 신호 전달이 잘 되지 않기 때문이다. 데이터가 같은 비트로 연속되면 전송특성상 신호 전달에 문제가 발생하므로 전송선의 특성에 맞추어 변조한다. 모뎀은 아날로그/디지털 변환기의 일종으로 컴퓨터의 디지털 신호를 아날로그 신호로 바꾸어 전송하고, 아날로그 신호를 받아 디지털 신호로 읽어낸다.

참고링크 https://usage.tistory.com/62

Port, well known port

포트번호란, 컴퓨터 안에서 작동하는 애플리케이션을 식별하기 위해 사용하는 숫자이다.

그 중 well-konwn port 라고 해서 잘 알려진 포트 번호이다. 우리가 흔히 아는 ssh-22 http-80 https-443 mysql-3306 등이 있다.

공인 IP, 사설 IP


사진 출처 https://yohanpro.com/posts

설명하기전에 집에 있는 공유기를 살펴보자.
WAN, LAN이 있을 것이다.
통신사랑 계약한 케이블은 WAN과 연결되며, 노트북,스마트폰 등은 LAN에 연결된다.

공인 IP
WAN과 연결하면 공인 IP가 주어진다. 공인 IP는 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다. 공용 IP주소라고도 불리며 외부에 공개되어 있는 IP주소이다.

  • 공인 IP는 전세계에서 유일한 IP 주소를 갖는다
  • 공인 IP 주소가 외부에 공개되어 있기에 인터넷에 연결된 다른 PC로부터 접근이 가능하다.

사설 IP
LAN과 연결을 하게 되면 사설 IP가 주어진다. 일반 가정이나 회사 내 등에 할당된 네트워크의 IP주소이다.

  • 하나의 네트워크 안에서 유일한 IP 주소를 갖는다
  • 외부에서 접근할 수 없다.

잠깐! 그렇다면 사설 IP를 사용하는 장치들이 인터넷을 통해 공유기 밖의 정보에 접속이 어떻게 가능할까?

Network Address Translation 때문이다!
즉, 내 컴퓨터(사설IP)에서 naver.com을 입력하면 공유기에 요청이 전달된다. 일단 공유기는 내 사설 IP를 저장한다. 후에 사설 IP를 공인 IP로 바꾼 후 요청한다. 어떠한 작업이 끝나 응답은 공인 IP를 통해 들어오며 공유기가 사설 IP로 보내주는 것이다.

포트포워딩 실습

외부 기기에서 접속시에도 위에 창이 뜨도록 포트 포워딩을 설정해보겠다.

cmd창에 ipconfig 명령어를 입력하면, 기본 게이트웨이 주소를 확인할 수 있다.

IPv4 주소 . . . . . . . . . : 192.168.219.x
기본 게이트웨이 . . . . . . : 192.168.219.1

브라우저에서 게이트웨이 주소로 접근하면 사용하고 있는 공유기 관리자에 접속할 수 있다.

로그인 후 고급 설정 > NAT 설정을 한다.

추가 한 후 확인을 눌러 적용을 시켜야 한다!

포트포워딩을 완료하고 내부 포트가 80이기 때문에 [http://내 외부 IP : 80]를 입력하면 서버에 접근할 수 있다.

내 외부 IP는 네이버에 내 ip주소 치면 나온다.

잘 나오는 걸 확인할 수 있다.

profile
backend developer

0개의 댓글