기타 용어들

기타 용어들

목록

  1. dns
  2. subnet
  3. NAT
  4. port
  5. socket
  6. mac address

1. dns

DNS(도메인 네임 시스템)는 .com 또는 .net과 같은 특정 최상위 도메인(TLD)의 모든 도메인 네임 및 해당하는 IP 주소를 저장하는 데이터베이스입니다. DNS는 인터넷에서 컴퓨터 시스템과 리소스를 식별하고 찾습니다. 예를 들어, 웹 주소 또는 URL을 입력하면 DNS가 입력된 이름과 해당 위치의 IP 주소를 일치시키고 사용자를 해당 사이트에 연결시켜 줍니다.


2. subnet

  • 서브넷(subnet)은 “subnetwork”을 줄인 말로서 어떤 기관에 소속된 네트웍이지만 따로 분리되어 있는 한 부분으로 인식될 수 있는 네트웍을 말한다.

  • 일반적으로 하나의 서브넷은 하나의 지역, 한 빌딩 또는 같은 근거리통신망 내에 있는 모든 컴퓨터들을 나타낼 수 있다.

  • 여러 개의 서브넷으로 나뉘어진 어떤 조직의 네트웍은 인터넷에 하나의 공유된 네트웍 주소로 접속될 수 있다. 만약 서브넷이 없다면, 그 조직은 물리적으로 분리된 서브 네트웍마다 하나씩, 여러 군데의 인터넷 접속을 가지게 될 것이며, 그렇게 함으로써 한정된 량의 인터넷 주소가 쓸모 없이 낭비될 수도 있게된다.

  • 인터넷은 네트웍 사용자들 간에 서로 커뮤니케이션을 하기 위한 네트웍의 집합이다.

  • 커뮤니케이션을 위해서는 양측의 사용자 또는 호스트가 관련되어 있는 발신지와 도착지 네트웍, 그리고 네트웍 내의 특정한 컴퓨터의 주소가 있어야 한다. 이 주소를 IP 주소라고 부른다.

  • 32 비트의 IP 주소는 크게 두 부분으로 나뉘는데, 하나는 네트웍을 식별하는 네트웍 번호이고, 다른 하나는 네트웍 내의 특정한 컴퓨터나 호스트를 식별하는 호스트 번호이다.

  • 한 기관에서 특정한 서브넷을 확인시키기 위해 컴퓨터나 호스트를 식별하는 주소 내의 비트들을 일부 사용할 수 있다.

  • 그러므로 실제로는 IP 주소에는 네트웍 번호, 서브넷 번호, 그리고 컴퓨터 번호 등 세 부분이 포함되어 있는 셈이다.

  • https://www.icann.org/


3. NAT (= Network Address Translation)

  • NAT는 외부 네트웍에 알려진 것과 다른 IP 주소를 사용하는 내부 네트웍에서, IP 주소를 변환하는 것이다.

  • 일반적으로, 한 회사는 자신의 내부 네트웍 주소를 하나 또는 그 이상의 공인 IP 주소로 사상한다. 그리고 들어오는 패킷들 상의 공인 IP 주소를 다시 사설 IP 주소로 변환한다.

  • 이렇게 함으로써 나가거나 들어오는 각 요구들은 주소 변환과정을 반드시 거쳐야 하기 때문에,

  • 보안문제를 확실하게 하는데 도움이 되며, 또한

  • 요구를 제한하거나 인증하고, 또

  • 이전의 요구와 일치시키는 기회를 제공한다.

  • NAT은 또한 회사에서 필요한 공인 IP 주소의 수를 보존하며, 회사가 외부 네트웍과의 통신에서 단 하나의 공인 IP 주소를 사용할 수 있게 한다.

  • NAT은 라우터의 일부로서 포함되며, 종종 통합된 방화벽의 일부가 되기도 한다.

  • 네트웍 관리자들은 공인 IP 주소에서 사설 IP 주소로, 사설 IP 주소에서 공인 IP 주소로 사상하기 위한 NAT 표를 만든다.

  • NAT은 라우팅 정책과 함께 사용될 수도 있다.

  • NAT은 IP 주소를 정적으로 정의하거나, 또는 동적으로 변환하도록 설정될 수 있다. 시스코에서 만든 NAT 버전은 관리자가 다음과 같은 것들의 사상을 위한 표를 만들도록 해 준다.


4. port

네트워크의 입출력단자들을 포트(PORT)라고 하며 번호로 지정되는데 포트의 번호는 0에서 65535까지 입니다.
TCP/IP 네트웍에서 포트 번호는, 들어오는 트래픽을 컴퓨터 내에서 실행되고 있는 적절한 프로그램에 분배시키기 위해 할당되는 숫자를 말한다. 이것은 물리적인 플러그나 소켓이 아니며, 다만 논리적인 할당일 뿐이다

  • 프로그래밍에서, 포트는 “논리적인 접속장소”이며, 특히 인터넷 프로토콜인 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트웍 상의 특정 서버 프로그램을 지정하는 방법으로 사용된다.
  • 웹 프로토콜인 HTTP와 같이, TCP/IP의 상위 프로토콜을 사용하는 응용프로그램에서는 미리 지정된 포트번호들을 가지고 있다.
  • 이런 것들은 IANA에 의해 지정되었으며, “잘 알려진 포트들”이라고 불린다.
  • 다른 응용프로그램 프로세스들은 매번 접속할 때마다 포트번호가 동적으로 부여된다. 서버 프로그램이 처음 시작되면, 지정된 포트번호로 바인드된다. 그 서버를 사용하려는 모든 클라이언트 프로그램들은 지정된 포트번호에 바인드해야만 한다.
  • 바인드가 되면 두개의 컴퓨터간 네트워크를 이용한 통신시 발신지 컴퓨터에서 출발한 사용자 데이터(패킷)는 TCP/IP의 각 계층을 거치면서 최종적으로 목적지 주소(IP)를 가지고 있는 컴퓨터에 도착하게 됩니다. 패킷을 수신한 컴퓨터는 전송시에 사용되었던 주소필드를 제거하고, 패킷 안에 있는 데이터만을 응용프로그램에 넘겨줍니다.

이 포트들은 크게 세 가지 영역으로 나누어서 지정되어 있습니다.

1. 0번 포트에서 1023포트 까지

well-known port number 라고 하며 미리 특수용도로 지정되어 있습니다. (IANA(Internet Assigned Numbers Authority)에서 관리한다.)

21번: FTP
22번: SSH
23번: TELNET
25번: SMTP(이메일송신)
53번: DNS
61번: SNMP(네트워크관리)
80번: HTTP(웹페이지를 열기 위한 용도)
110번: POP3(이메일수신)
115번: SFTP
135번: RPC
139번: NetBIOS
143번: IMAP
194: IRC
443: SSL
445: SMB

2. 등록된 포트로 사용할 경우 1024~49151번을 사용합니다.

1433: MSQL
3306: MySQL
3389: Remote Desktop
5632: PCAnywhere
5900: VNC
6112: Warcraft III

3. 개인적 용도라면 49152~65535번을 사용하도록 규정되어 있습니다.

클라이언트/서버 방식의 프로그램에서 포트의 사용

  1. 서버/클라이언트 프로그램에서는 서버에서 사용하는 포트번호를 클라이언트 프로그램에서도 동일하게 맞추어 주어야 합니다.
  2. 서버/클라이언트 프로그램에서 사용하는 포트가 개방되도록 라우터 또는 공유기 등의 설정메뉴에서 개방해야 합니다.
  3. 서버/클라이언트 프로그램에서 포트를 설정하지 않으면 임의로 포트를 설정해 주는 프로그램이 일부 있습니다.

5. socket

  • 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단자입니다.

  • 두 소켓이 연결되면 서로 다른 프로세스끼리 데이터를 전달할 수 있습니다.

  • 결국 소켓이 구현됨으로써 네트워크 및 전송 계층의 캡슐화가 가능해집니다.

  • 소켓은 원래 캘리포니아 버클리 대학 분교에서 UNIX용으로 개발되었으며, UNIX에서의 입출력 메소드의 표준인 개방/읽기/쓰기/닫기 메커니즘을 따릅니다.

  • 소켓 함수는 동기모드(블록킹) / 비동기 모드 (논블록킹)으로 동작합니다.

  • 차이점은 만약 데이터가 도착하지 않는 상태에서 recv()로 데이터를 수신하고자 했을 때 데이터가 올 때까지 대기(block)하느냐 , 그냥 수신된 데이터가 없다는 정보만 리턴하고 넘어가느냐 입니다.

  • 실제로 대기한다는 의미는 시스템을 멈추고 기다린다는 것이 아니라 다른 쓰레드나 프로세스(process)로 실행 권을 넘기는 것이기 때문에 프로세서는 항상 적절한 동작을 하게 됩니다.

  • 비동기 모드로 데이터가 올 떄까지 풀링(polling)하면서 대기하는 것과는 기다린다는 의미에서는 동일하지만 프로세서를 활용한다는 면에서는 하늘과 땅 차이라고 할 수 있습니다. 이런 병렬적인 처리에 대한 고려가 필요하게 됩니다.

  • 그리고 직접적인 소켓 통신을 처리하는 함수는 아니지만 소켓 처리에 대해서 Multiplex처리(하나의 쓰레드, 혹은 적은 수의 쓰레드에서 여러 개의 소켓을 처리)를 해주는 select , epoll , IOCP 같은 기능적인 함수군도 염두해 두어야겠습니다.

6. MAC address (= Media Access Control Address)

MAC 주소는, 무선 LAN 카드 또는 무선 LAN 기능 내장 기기에 개별적으로 부여되는 16진수 12자리의 단말 식별 번호(예:12:34:56:78:90:AB)입니다. OS에 따라 “물리적 주소” 또는”Wi-Fi 주소”라고 표시됩니다.

DHCP

  • 동적 IP 할당
  1. 특정 IP에서 오는 것 차단
    • ex. 특정 사이트 차단. 접속을 못하게 함.
    • 공유기 안에 혹은 라우팅 컴퓨터 안에서 설정.
  2. 특정 포트만 전송 가능

참고링크

  1. https://www.verisign.com/ko_KR/website-presence/online/domain-name-system/index.xhtml
  2. https://www.verisign.com/assets/DNS101_ko_KR.pdf
  3. http://www.terms.co.kr/subnet.htm
  4. http://www.terms.co.kr/NAT.htm
  5. http://egloos.zum.com/Esunny/v/4130787
  6. http://popbox.tistory.com/66
  7. https://ko.wikipedia.org/wiki/MAC_%EC%A3%BC%EC%86%8C
  8. http://popbox.tistory.com/66