[Network 08. 31]01. Chapter1

2010. 8. 31. 11:28Network

1. TCP/IP 모델
RFC 1122에 정의되어 있으며 계층화된 모델
4개의 계층으로 구성되어있으며 각 계층은
그 계층만으로 프로토콜을 가지고 있음
융통성 있는 프로토콜 디자인 데이터는
한 계층에서 다른 계층으로 이동이 가능







1.1 응용계층(Application layer)
  최상위 계층으로 사용자 프로그램과 그 하위 계층과의 인터페이스를 위해 존재
예를 들어 HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol), POP3(Post Office Protocol Version3)
FTP(File Transfer Protocol) , Telnet

1.2 전송계층(Transport layer)
  두 호스트간의 end to end 통신을 처리
  TCP/UDP Transmission Control Protocol(TCP) -신뢰성 있는 연결 지향형 프로토콜
  User Datagram Protocol(UDP) - 비연결 형 프로토콜
  주소지정을 위해 포트번호를 사용-(송신측 포트번호,수신측 포트번호)

1.3.인터넷 계층(Internet Layer)
  인터넷 프로토콜 (IP)
    VoIP와 IPTV에서 사용됨, IP주소를 이용하여 송신측에서 수신측까지 데이터를 운반
  기타 프로토콜로는 Internet Group Management Protocol (IGMP), Internet Control Message Protocol(ICMP)

1.4 링크계층(Link Layer)
  미디어 접근 계층으로도 알려져 있음
  네트워크의 하드웨어적인 부분을 담당
  소프트웨어와 하드웨어간의 인터페이스를 처리
  하드웨어에 따른 장치 드라이버가 필요
  기타 프로토콜 Address Resoulution Protocol(ARP)

2. 프로토콜
  데이터통신을 위해 종단점 간에 사용되는 규칙 또는 표준의 집합
  데이터의 구조나 형식을 정의
  통신이 어떻게 이뤄져야 하는지를 정의
  각 계층은 그 계층만의 프로토콜을 포함

  IETF에서 인터넷에 사용되는 프로토콜을 표준화 
     Release Request for Comment (RFC)문서


2.1 포트번호
호스트 시스템 내에서 어플리케이션을 식별하는데 유용
TCP와 UDP에서 사용됨
16비트의 길이를 가짐
0-65535의 범위
Interneet Assigned Numbers Authority(IANA)에서 포트번호를 할당
Well known port[0-1023]
Registered port[1024-49151]
Dynamic and /or private port[49152-65535]

3 IP주소
  인터넷 프로토콜을 이용하는 모든 호스트는 IP주소라는 유일한 식별자를 가짐
  ipconfig 명령을 이용하여 IP주소 확인 가능


3.1 IPv4
  32비트 주소 표현
  총 4,294,967,296개의 유일한 주소를 가짐
  10진수와 구분점으로 표현
  각각 8비트로 4개의 부분으로 나뉘어짐

4 IPv6 
 IPv4의 주소한계 문제점을 해결
 프로토콜의 효율성 향상을 위해 설계됨
128비트의 주소길이
총 2^128 = 3.40x 10^38 의 유일한 주소를 가짐
IPv6주소는 콜론과 함께 16진수로 표현


4.1 IPv6주소(RFC 4291)
  단축표현
    앞에오는 0은 생략가능
    모두 0으로 된 부분은 한개의 0으로 표현
    모두 0으로 된 부분이 연속으로 올 경우 더블콜론::으로 표현
ex)2001:05C0:1000:000B:0000:0000:0000:0000:23DF
    20001:5C0:1000:B:0:0:0:23DF
    2001:5C0:1000:B::23DF

4.2 IPv6 의 특수 주소
0:0:0:0:0:0:0:0 or :: unspecified address
0:0:0:0:0:0:0:1 or ::1  Loopback address
FF00::/8 Multicast address

5. 도메인 네임 시스템 (DNS)
DNS검색을 통해서 도메인 이름을 IP주소로 번역
Ping 명령으로 IP주소 검색

6. 클라이언트 / 서버 모델
  서버 - 서비스를 제공하는 머신
  클라이언트 - 서버에 의해 제공되는 서비스를 이용
  다양한 네트워크 형태의 기초
  Example: web browser, email application
  클라이언트는 서버에 요청을 보내고 난 후 서버로 부터 응답을 기다림
  서버는 클라이언트의 요청을 처리한 후 다시 클라이언트에게 응답
 
7. 소켓
IP 네트워크를 통해 데이터가 흘러갈 수 있도록 하는 프로세스에 대한 통신 종단점
서버와 클라이언트 간에 two-way 통신을 용이하게 함
Inter Process Communication(IPC)을 위해 흔히 사용됨
소켓 구성요소:
프로토콜: 송신측/수신측 IP,송신측/수신측 포트번호
8. 윈도우 소켓(Winsock)
윈도우 네트워크 어플리케이션 프로그래밍을 위한 Application Programming Interface (API)
Brekeley sockets API에 기초
현재 버전은 Winsock2
서로 다른 호스트와 프로세스들 간의 통신을 가능하게 함
다른 운영체제에서의 IPC 또한 용이하게 할 수 있음

8. Net 소켓 클래스
  .Net프레임워크는 Windows Sockets API의 Managed 버전을 포함
  System.Net.sockets 네임스페이스
      Winsock과 비슷한 기능을 제공하는 Socket클래스를 제공
      또한 다음과같은 높은 레벨의 소켓추상 클래스를 제공-(TcpListener, TcpClient, UdpClient)