2014년 10월 3일 금요일

Computer Networking A top-down approach 정리 2

1. Protocol hierarchy and Service model
network는 계층적 구조를 가지고 있음. 
복잡한 시스템를 사람이 잘 이해할 수 있도록 하기 위해 각각의 단계로 구분함. 단순화 시킴.
각 계층에 대한 구현을 변경하기도 쉽고, 특정 계층의 구현 변경이 다른 계층에 영향을 미치지 않음.(interface를 준수하는 한.)





network의 protocol의 계층은 layer로 표현되는데, 각 계층은 상하위 계층에 대해 service를 제공하므로, 이것을 Service model 이라고 함.
network의 protocol의 계층은 Software와 Hardware의 통합으로 구현됨.
HTTP, SMTP 같은 것은 application layer(host에서 동작). physical layer와 data link layer는 특정 link상의 communication을 다루는 것이므로, network interface card에서 구현됨(Ethernet같은..).

이러한 계층화(모듈화)는 단점이 있음.

  1. 한 layer의 기능이 하위 layer의 기능과 중복 될수 있음.(e.g. error check)
  2. 한 layer의 기능이 다른 layer의 정보(e.g. timestamp)를 필요로 할 경우.


Internet protocol layer는 5개의 layer로 구성되어 있음.
(최상위)<application> - <transport> - <network> - <link> - <physical> (최하위)


  1. application layer:
    이 layer는 서로 다른 host 의 application이 서로의 data packet을 교환하는데 사용됨.
    예: HTTP, SMTP, FTP,
    이 layer에서의 data packet을 "message" 라고 한다.
  2. transport layer:
    client와 server 간의 application layer의 message를 전송하는 서비스를 제공.
    TCP와 UDP 라는 protocol이 있으며, 두 방식 중 하나를 사용한다.
    TCP는 연결 지향형 서비스, 흐름제어(송수신자의 속도 일치), 혼잡제어기능(긴 message를 짧은 message로 나눔)을 제공.
    UDP는 비연결형 서비스를 제공. 신뢰성, 흐름제어, 혼잡제어를 제공하지 않는 서비스.
    이 layer의 data packet을 "segment"라고 한다.
  3. network layer(IP layer):
    한 host에서 다른 host로 "datagram"을 routing 한다.
    host의 transport(TCP/UDP) layer은 "segment"와 destination address를 network layer로 전달한다.
    그 다음 network layer는 destination의 transport layer로 "segment"를 전달하는 역할을 한다.
    주요 요소: IP datagram의 field를 정의, host와 router에서 이 field가 어떻게 동작하는 지를 정의하는 "IP protocol"을 정의하고 있다.
    따라서, network layer를 가진 모든 internet 요소는 IP protocol을 수행하야만 한다.
    또한 network layer는 source와 destination 사이에서 datagram의 path를 결정하는 routing protocol을 갖는다.
  4. link layer:
    source 와 destination 사이의 packet switch(=router)를 통해 datagram을 routing함.
    link layer에서 제공하는 서비스는, 특정 link에서 채용한 link layer protocol에 의해 결정된다. (예: Ethernet, Point-to-Point protocol.)
    따라서, "datagram"은 path 상의 여러 link를 거치는데, 서로 다른 link에서 서로 다른 link layer protocol에 의해 처리 될수 있다.
    link layer packet을 "frame" 이라고 한다.
  5. physical layer:
    link layer의 "frame" 내부의 각 bit를 한 node에서 다른 node로 이동시킨다.
    실제 media(광케이블 같은..)에 의존한다.
* 다른 network protocol인 OSI 7 layer은 Internet protocol에 presentation layer와 session layer이 더 있는 형태이다.
  1. presentation layer: hosts 사이에서 교환된 data의 의미를 해석하도록 하는 service를 제공하는 역할. 데이터 압축과 데이터 암호화를 포함한다.
  2. session layer: data의 교환의 경계와 동기화를 제공
* layer의 존재 유무는 단순히 application의 개발자에 의해 좌우된다. 따라서 특정 계층이 필요하면, 구현하면되고, 아니면 사용안하면 된다. (그래도 어느정도 굳어진 형태가 있겠지?)



2. message, segment, datagram and frame
router와 link layer switch는 둘다 packet switch이다.
하지만 모든 protocol layer를 구현하지는 않았다.
  • router의 경우 physical, link, network layer로 구성됨.
  • link layer switch의 경우 physical, link layer로 구성됨.
* Encapsulation(캡슐화):
  • 송신 host에서 application layer의 "message"는 transport layer로 보내진다. 
  • 여기에 transport layer는 header information을 추가하여, "segment"를 구성한다.
    이러한 방식은 segment가 message를 캡슐화하는 것으로, 이 때, 오류 검출 비트를 포함시킨다.
  • network layer에서는 transport layer의 segment를 받아 header를 추가하는데, source address와 destination address를 추가하여, "datagram"을 만든다.
  • link layer는 datagram을 받아 header를 추가하여, "frame"을 만든다.
  • 각 계층에서 packet은 header field와 payload field  두가지 형태의 field를 갖게된다.
    payload field는 그 계층의 상위 계층으로부터 받은 packet을 의미한다.




  • packet sniffer: 수신되는 packet의 사본을 얻고, 여기서 각종 정보를 얻어 낼수 있는데, 이러한 정보를 수신하는 수신자를 packet sniffer라고 함. 해결법은 암호화.(?)
  • IP spoofing: source address 수정하여 수신 host가 정상적인 packet으로 오인하는 방법이다. 해결법은 end-point authentication(?)
  • man-in-the-middle attack: communication path상의 한 곳을 공격하여, 그곳을 지나는 모든 packet을 sniffing 하거나, packet을 삽입, 수정, 삭제 할 수 있다.































댓글 없음:

댓글 쓰기