본문 바로가기

Programming/기초

네크워크 기초

IP

IP(Internet Protocol) 주소는 전 세계 컴퓨터에 부여된 고유의 식별 주소다. 이론적으로 세상의 모든 컴퓨터(또는 네트워크 기기)는 중복되지 않는 IP 주소를 가지고 있어야 한다. 그래야 상호 충돌 없이 네트워크에 연결될 수 있기 때문이다. 따라서 IP 주소는 컴퓨터끼리 서로 통신하기 위한 '전화번호'라 생각하면 이해가 쉽다.


IPv4(IP version4) '123.123.123.123'

IP 주소로는 0.0.0.0부터 255.255.255.255까지


IPv6(IP version6)

0000:0000:0000:0000:0000:0000:0000:0000 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF



LAN, WAN의 정의와 차이점


오늘은 LAN WAN의 정의와 그 차이점에 대해 포스팅 해보도록 하겠습니다.

네트워크는 LAN과 WAN 크게 두가지로 나눠집니다.


LAN Local Area Network의 약자로 사용자가 포함된 지역 네트워크를 의미합니다.

쉽게 말씀드리면 학교, 회사, 집에서 컴퓨터, IP 전화기등의 장비를 서로 연결한 거에요.

이 때 컴퓨터끼리 1대1로 직접 연결하는게 아니라 공유기나 스위치등을 이용해서

아래 사진과 같이 연결하게 됩니다.​

 


LAN은 구성할때 드는 비용과 전기세를 빼고는 유지보수비가 들지 않는다는 특징이 있습니다.

LAN은 이더넷이라는 프로토콜을 주로 사용합니다.

WAN Wide Area Network 의 준말로써 LAN과 LAN 사이를

광범위한 지역 단위로 구성하는 네트워크를 의미합니다.

여러분 집에 있는 컴퓨터에서 다음 사이트에 어떻게 접속을 할까요?

보통 ISP(Internet Service Provider => SK, KT, LG) 네트워크망을 통해 접속합니다.

여러분의 컴퓨터에서 ISP 업체에서 설치해준 랜선을 통해 밖으로 나가서

다음 서버실에 있는 다음 웹서버에 가서 접속을 하게 됩니다.

아래의 그림 같이 WAN은 LAN과 LAN사이를 이어줍니다.​ 

  

 


우리가 사용하는 네트워크는 작은 네트워크들이 서로 합쳐져서 커지고

또 합쳐져서 하나의 큰 네트워크가 된답니다.



1. PORT

인터넷에 연결된 각각의 컴퓨터는 유일한 IP주소로 식별할 수 있다. 네트워크 프로그램은 IP주소를 이용해서 연결할 컴퓨터를 찾을 수 있다.

연결할 컴퓨터를 찾았다면, 이제 서비스를 요청할 프로그램을 찾아야 한다. 이때 사용하는게 포트 번호다. 네트워크 프로그램은 포트번호에 연결이 되고, 운영체제는 포트번호를 이용해서 프로그램들을 연결한다.

이러한 연결과정은 항만시설에서 다양한 종류의 서비스를 제공하기 위해서 "포트"를 제공하는 것과 동일하다.

인터넷 네트워크 프로그램은 실행될 때, 운영체제에 자신이 바인드될 포트번호를 요청한다. 웹 서버라면 80번을 요청할 것이다. 이제 Firefox 같은 웹 클라이언트 프로그램은 IP 주소와 포트 번호를 이용해서 자신이 연결할 서버 프로그램을 찾을 수 있다.

1.1. TCP와 포트번호

포트번호는 TCP 프로토콜의 요소다. TCP 프로토콜은 패킷의 흐름을 제어하는 역할을 한다. 즉

  1. 패킷을 어느 애플리케이션으로 보낼지를 결정한다.
  2. 패킷의 순서를 확인한다.
  3. 패킷의 흐름에 구멍이 뚫렸는지를 확인한다.

이중 1번 역할을 포트번호를 이용해서 수행한다.

2. 시스템 포트 번호

인터넷 세계에는 수 많은 인터넷 서비스들이 있다. 이중 널리 사용되는 인터넷 표준 서비스들은 고정된 포트번호를 할당해서 사용하고 있다. HTTP(80), FTP(21), SSH(22)SMTP(25), SNMP(161), BIND등의 서비스들이다.

이들 포트 번호는 /etc/services에 정의되어 있다. 이 파일을 열어 보면, 인터넷 서비스와 이들이 사용하는 포트번호를 확인할 수 있다.

포트번호는 1부터 65546까지 사용할 수 있는데, 이중 1-1024까지는 표준 서비스들을 위해서 시스템적으로 고정되어 있다. 이들을 시스템 포트 번호라고 한다. 시스템 포트번호는 시스템상에 고정되어 있기 때문에 루트권한을 가져야만 할당받을 수 있다. 예컨데, 80번 포트를 사용하는 아파치 웹서버는 일반 사용자 계정으로는 실행할 수 없다.

'Programming > 기초' 카테고리의 다른 글

메모리 페이징  (0) 2018.06.03
비트 연산 쉬프트 연산  (0) 2018.05.29
c++ 기본 입출력  (0) 2018.05.29
포인터를 쓰는 이유 (Call - By - Reference)  (0) 2018.05.26
시간 복잡도  (0) 2018.05.26
vector, deque, list 간단 비교 정리  (0) 2018.05.26
라이브러리 프레임워크 차이?  (0) 2018.05.26
시스템 메모리 구조  (0) 2018.05.26