ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SOLDESK]수업2일차_TCP/IP (4장)-4장 Data전송프로토콜
    Computer Sci‧ence/CCNA 2014. 10. 22. 23:30
    반응형

     Data 전송프로토콜

    • TCP(Transmission control protocol): L4
    • UDP
    • IP
    • ICMP
    • ARP
      --------------------------------------------------------------
    • TCP(Connection-oriented service):연결지향성 
      • L4
      • Data 무결성을 보장, 양방향 Data 전송이 가능한 전이중 서비스(Full duplex service)를 제공한다. 또한, 스트림데이터서비스(stream data service)가 제공되기 때문에 상위 계층으로부터 수신한 Data 스트림을 세그먼트(segment)형식의 단위로 분리하여 network로 전송하며, 목적지에서는 TCP에 의해서 segment를 재조립한다. 만약 전송된 segment에 대한 응답을 정해진 timer안에 수신하지 못한다면 해당 segment를 재전송함으로써 신뢰적인 서비스(Reliabiliy service)를 제공한다. 
      • TCP는 연결이후에 Data를 전송하고, 그에 대한 응답을 필요로 한다. 
                 Link---------Data transfer--------Ack(reply)
      • A<------------------------>B 송수신 동시에 가능(full Duplex)
        • 참고)half duplex: 무전기, 쌍방향통신이지만 동시는 되지 않는다. 
      • 혼잡제어: 혼잡발생시 windows size를 줄여, 혼잡을 회피하는 기능
      • Data의 분리조각
      • Data stream service 순서대로 조립, 분해
      • 받으면 '잘받았다는 Ack를 보낸다.(재전송) 
      • TCP 3way-handshaking 실시
        • control syn가 1bit로 설정되면 TCP 통신연결을 개시한다. 
        • source(1533)|dest(80)|seg(100)|ack(0)
          source(1533)|dest(80)|seg(101)|ack(201)
          A(send sync(1))1bit로 설정(flag,syn)-----Receive(Ack,Syn)----------------(seg1, ack201,flag ack) 


          B---------------------(receive syn)---send(ack101,syn,seg200(flag ack,syn))---------Recieve Ack--(여기부터 통신이 시작)--

          1. A가 B에게 통신을 요청한다. (syn->1)
          2. B는 receive syn, B->A, ack=1, syn=1(통신하자, syn를 받았다.)
          3. A->B  send ack=1
        • flow control(data를 받을 수 있는 만큼 데이터를 늘려서 전송하는것): 흐름제어
          TCP는 통신에 참여한 두 host가 송수신 할 수 있는 Data양을 Network상황에 맞게 조절하는 기능을 제공한다. 일반적으로 Data를 전송하기 이전에 송신한 Data에 대한 응답을 먼저 수신해야지만 그 다음 Data를 송신할 수 있다. 즉, 매번 송신한 Data에 대한 응답을 수신해야만 그 다음 Data를 송신할 수 있다. 이러한 동작을 stop and waiting 기능이라 한다.(옛날방식) 
          그러나 TCP는 슬라이딩 윈도우(sliding window) 기능을 이용하여 상호 협의한 윈도우 크기만큼 Data를 송신하고 이에 대한 응답만 수신하면 그 다음 Window size(윈도우 크기)만큼 Data를 송신한다. 즉, 송신 packet 1개당 응답 1개를 수신하는 것이 아니라, Window size 만큼 Data를 송신하고, 이에 대한 응답을 수신하므로써 Data전송 처리율과 메모리에 대한 효율성을 보장한다. 
          • Window size:송수신할 수 있는 Data양, 처음에 최대 size를 알려주고 낮은 쪽 기준으로 통신 
        •  A

          ----------------------------------

           seq0

            >>>>>>>>>>>>>>>>>>>>>>>>>>>> 

           

           

           <<<<<<<<<<<<<<<<<<<<<<<<<<<

          ACK 1

           seg1

           >>>>>>>>>>>>>>>>>>>>>>>>>>>> 

           

           

           <<<<<<<<<<<<<<<<<<<<<<<<<<<< 

          ACK 2 

           seg2 

          >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

           

           

          <<<<<<<<<<<<<<<<<<<<<<<<<<<<< 

          ACK4 

           seg4  >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
           

           <<<<<<<<<<<<<<<<<<<<<<<<<<<<

          ACK8 

           seg9 

           >>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

           

           

           <<<<<<<<<<<<<<<<<<<<<<<<<<<<< 

          ACK16 

           seg 16 

          >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

           

        • 오류제어(Error Control)및 오류정정(Error Control)
          A>>>>>>>B 로의 데이터 전송에서 error가 난 seqment를 발견했다면 B는 "ACK"를 보내지 않는다. 

          TCP는 segment에 포함된 check sum을 이용하여  segment 손상여부를 검사한다. 만약 segment 손상이 발견된다면 수신측에서는 해당 segment를 폐기하고, 송신측으로 응답을(ACK)를 보내지 않는다. 또한, 송신측은 일정 시간이 초과되기 이전에 응답(ACK)을 수신하지 못하면, 해당 segment가 손실되었다고 간주한다. 이런 경우, 송신측에서는 전송되는 각 segment마다 시간 초과 count를 이용하여 주기적으로 확인하다가 counter값이 만기되면 해당 segment를 재 전송한다.

        • TCP를 사용하는 routing protocol: BGP(port 79)
        • TCP를 사용하는 application protocol: HTTP, SSH, Telnet, FTP(TCP가 이용), SMTP, POP3, HTTPs

    • control Flag 6bit의 필드값
    • URG 

      1bit로 설정되면, 다른 packet에 비해 먼저 처리할 것을 요청한다는 의미 

      ACK

      1bit로 설정되면 확인응답을 한다는 의미 

      PSH 

      1bit로 설정되면 수신한 Data를 직시 상위계층 processor로 넘겨주는 의미이다.(바로 운영체제를 돌려라)

      RST 

      1bit로 설정되면 TCP연결 에러거나 강제로 해지한다 

      SYN 

      1bit로 설정되면 TCP 통신연결을 개시한다는 의미 

      FIN 

      1bit로 설정되면 TCP 연결이 정상적으로 종료한다는 의미 

      A   FIN--->       B

      A   <-----ACK    B

      A   <---  FIN      B

      A   ACK--->       B

      단, reset은 강제종료로  ack가 필요없다.  





    • OSI 7 layer(data 생성과 전송과정을 7계층 모델로 정의한 표준안)
      • Layer 7-application
        • 사용자가 직접 볼 수 있는것(ex, IE창, http,telnet etc) //telnet은 보안이 없다. 
        • 사용자가 service를 구현, 제공되는 계층, application program/protocol/OS
        • OS기반에서 응용프로그램 & 응용프로토콜 담당

      • Layer 6-presentation
        • application계층에서 서비스가 구현되도록 Data 해독,압축,해지 담당(ex, incorder, decorder, codec etc, 사진, 글 이런것에 대한것)
      • Layer 5-session
        • client& server 간의 논리적 연결 담당
          ------------------------↑
          ↑상위계층, Data생성/service구현 담당(OS가 담당:windows, linux, http), 프로그램, 개발자등이 담당
          ------------------------↓
          ↓하위계층, Data 전송담당, 전송장비, 전송프로토콜
      • Layer 4-transfer(TCP/UDP protocol)
        • TCP/UDP |Data


      • Layer 3-network(IP protocol)
        • IP protocol     
        • IP |TCP/UDP |Data

      • Layer 2-Data-link
        • ETH |IP |TCP/UDP |Data

      • Layer 1-Physical
        • 전기적인 신호처리
          ---------------------------------------------------------------------------------------------------
    • UDP(User Data Protocol)
      • L4 계층 프로토콜, 상호연결을 실시하지 않는 비연결지향성 서비스(Connectless service)이다. 즉, 송신측과 수신측간에 접속절차를 거치지 않고 수신측에서 요청을 실시하면, 송신측에서 바로 Data를 전송한다. 또한 TCP에서 통신 연결과 제어를 담당하는 3way handshaking, data stream service, 재전송서비스, 혼잡제어 기능을 수행하지 않는다. 

      • Best effort service
        • UDP는 최선을 다해 목적지까지 Data를 전송하지만, 신뢰성을 보장하는 서비스로 인한 Data 전송지연이 발생하지 않기 때문에 신속한 Data전송이 가능하며, 이러한 특징 때문에 실시간으로 traffic을 전송하는 multimedia service 환경에서 주로 사용한다. 

      • UDP protocol을 사용하는 경우
        • 단순한 Data request와 reponse를 하는 경우, flow control(흐름제어)와 error control이 크게 필요하지 않는 경우, 내부적으로 흐름제어와 오류체크 machanism을 가지고 있는경우. multicast, broadcast service, 음성 Data
        • UDP protocol을 사용하는 application protocol 및 라우팅 protocol
          :DNS(port 53), DHCP(port 67/68), TFTP(port69), SNMP(port 161), NTP(port 123),RIPs(520)

      • Error Check(오류검사):손상된 data는 drop된다. 단 재전송기능이 보장되지 않는다. 검사를 하기는 하지만, 오류가 난 여부만을 check하고 data에 오류가 있다면 이 data는 drop된다. 
        • 단순한 요청, 응답만을 실시하는 service, realtime(실시간)traffic, transfer service(voice, video), broadcast, multicast

      • 참고:대용량 영화인 경우에는 FTP보다는 TFTP가 좋다. 


    • IP(Internet protoco)-network 계층에서 사용됨
      • Layer3 계층 protocol IP는 local환경에서 remote 환경으로 Data 전송을 담당한다. 또한 경로를 선출하여 선출된 최적 경로를 이용하여 Data 전송을 담당한다. 대신 UDP와 마찬가지로 비연결지향성 프로토콜이며 Best effort service를 지향하기 때문에 신뢰성은 제공하지 않는다.

      • TTL(Time to Live), 나와 해당 point와의 거리가 얼마다, 하고 알려주는 것 
        • 각 system에 따른 default값
          • Cisco IOS=255
          • Window= 128
          • Linux =64
        • 예를 들어, ping www.danawa.com (LINUX기반)에서 TTL=54라고 한다면,
          거리상 하나의 router당 TTL이 하나 차감된다. Linux64- TTL54=Router의 대략적 개수 10
        • windows system에서 TTL이 126이라면 Source와 point destination사이에 router가 대략 2개정도 위치하고 있는것 
        • time= 120ms (도달하는 것에 따른 거리)
        • byte= 32는 보낼 때 사용한 data의 크기
        • IP header 20Byte 

          Data 

          Version(4bit)

          head length(4bit) 

          type of Service(8bit) total(16bit) 

          identification(16bit) 

          flag(3bit) 

          fragmentation offser(13bit) 

          Time to live(8bit) 

          protocol(8bit) 

          header checksum(16bit) 

          source IP address(32bit) 

          Destination IP address(32bit) 

          option & padding 

        • version: protocol version(IPV4, IPV6)
        • header길이= 최소  20byte~ 60byte
        • ToS정보제공(IP precedure=3bit, DSCP=6bit, ECN=2bit)
        • IP datagram 전체길이 byte로 표기(data길이=전체길이-header길이)
        • host간에 전송하는 data를 표기, data그램 역할 

    • ICMP(Internet control Message protocol)
      • IP는 비연결지향형 protocol이며, 또한 목적지로 전송한 Data가 도착했는지 확인할 수 없기 때문에 신뢰성이 결여된다. 그래서 L3계층에서는 IP 프로토콜을 신뢰적으로 동작할 수 있도록 ICMP protocol을 사용한다. 이 때 ICMP는 IP datagram의 통신상태를 필요에 맞게 송신측에 알려주며 일반적으로 ping 명령어를 이용한 수동적인 방법으로 동작한다. 
        ICMP수동으로 TCP의 ack를 받듯, IP에서 연결이 잘 되었나 Test가능
      • IP Protocol에 대한 신뢰성을 보장하기 위한 message exchange protocol

        SA: 192.118.1.2                        DA: 119.205.194.11
        A>>>>> ICMP Echo-request>>>>>>>>>>>>>B
        A<<<<<ICMP reply(type=0 msg) <<<<<<<<<B

      • 설정에서 상대방 측에서 ICMP test하는 것에 대해서 막을 수 있다, 이유는 공격자가 data byte를 늘려서 site를 공격할 수도 있는 위험에서 벗어나기 위해서, 
      • 방화벽을 설정하면 ICMP가 자동적으로 차단된다. (Internet 고급설정에서 ICMP를 설정->all check를 설정하면 ICMP는 허용한다.)


    • ARP(address Resolution Protocol):주소변환 protocol
      • ARP는 L2 계층 이더넷 환경에서 목적지 IP주소에 대한 MAC 주소 변환동작을 담당한다. 단, 목적지 MAC주소가 없다면 ARP 주소 변환이 불가능 하기 때문에 Data는 전송할 수 없다. (반드시, MAC 주소를 먼저 받아야만 Data를 전송할 수 있다.)

      • 만약 목적지 IP주소에 대한 MAC 주소정보가 ARP table에 없다면 ARP broadcast를 요청한다. 

      • ARP table 확인방법 :cmd>arp -a
      • ARP broadcast request: pc는 192.168.1.13 IP 주소를 사용하는 PC MAC 주소를 학습하기 위해서 ARP broadcast request를 실시하며 이때 목적지 FF-FF-FF-FF-FF-FF가 된다. FF-FF-FF-FF-FF-FF는 MAC주소 전체가 1bit로 설정된 주소이며 broadcast data전송을 할 때 예약된 전송이다. 
        • 응답을 하는 pc는 unicast로 값을 보낸다. 
      • arp table 삭제: arp -d (Gateway에 대한 Mac주소만이 나타난다_ 
      • arp table에 직접 setting하기 :arp -s 157.55.85.212 00-aa-00-16-c6-xx
      • internet setting에서는 기본 Gateway를 setting해야하고, ARP table에 기본 Gateway에 대한 MAC정보를 학습해온다. 
      • arp는 
        • arp broadcast request                    
          -------------------------------------------->                                                    arp unicast reply(응답)
                                                                                                      <--------------------------------------

    • Ethernet protocol
      Ethernet은 LAN구간에서 사용하는 대표적인 protocol이다. 1980년대 DEC, Intel, Xerox가 공통으로 정의한 이더넷1이 있으며, 이 기반을 IEEE기관에서  1985 IEEE802.3이라는 표준 Ehternet을 정의하였다. Ethernet1은 10Mbps전송속도만 지원하는 반면에 IEEE 802.3은 10Mbps, 100Mbps, 1000Mbps, 10000Mbps라는 다양한 전송속도를 보장한다. 또한 Ehternet1과 IEEE802.3 Ethernet의 frame구조는 서로 다르지만 혼용해서 사용하는 것에 대해서는 문제가 되지 않는다. 장비는 Ethernet2를 기반으로하고 전송장비는 IEEE표준을 사용한다. 둘은 서로 호환된다. 

      PC---- hub------switch ----- switch---------route 
          L1         L1             L1             L1                 //총router까지는 L2, cable전기적 신호가 처리되는 구간은 L1

    • type:Ethernet위에 어떤 타입이 존재하고 있다. 
    • TYPE

      16진수 

      IPv4  

      0x0800 

      ARP 

      0x0806 

      IEEE 802.11q 

      0x8100 

      IPv6 

      0x86dd 

    • Switch-L2 장비
      • MAC address table 운영
      • unicast 지원
      • pc1-----collison발생가능--------------switch-----collison발생가능---------pc2
                                                                            -------collison발생가능--------pc3
        //pc1에서 collision이 발생하여도 pc2와 pc3간에 통신이 가능하다. 
        //여기서 collision 도메인은 3개 broadcast domain은 전체를 묶어서 하나이다. 


    • router는 broad cast/collision에 영향을 받지 않는다. router는 broadcast domain을 넘기지 않는다. 라우터가 Switch와 다른점 중 목적지가 내부인 frame을 수신하면 모든 port로 flooding되지 않는다는 것이다. 
    • router와 switch의 차이점 

      라우터  

      스위치 

      참조하는 header 

      IP header(?)

      Ethernet header 

      Data 주소 

      IP 주소 

      MAC 주소 

      Data 전송 table 

      Routing table 

      MAC address table 

      Data 처리방식 

      routing 

      switching 

      broad cast 공유처리 

      차단

      flooding 

      사용구간  

      WAN 

      LAN 

      interface종류 

      Ethernet Serial(serial은 WAN구간을 연결하는 protocol)

      Ethernet 



    • Layer3 Switch(Multi-layer Switch
      :Routing기능을 제공하는 Switch를 말하며 router에 비해서 처리속도가 빨라 performance가 높기 때문에 고속 routing이 필요한 구간에서 사용하면 효율적이다. 대표적인 L3 스위치에는 Cisco catalyst 3500, 3750 series가 있다. 


    명령어:
    • ping 119.205.194.11 -l 100 -t   //(length)  100byte짜리를 보냄
    • tracert www.danawa.com       //중간중간  router들에게도 reply응답을 받겠다라는 의미
    • cmd>arp -a                          //ARP table 확인방법


    반응형

    댓글

Designed by Tistory.