용어 정의 문제ARP주소 결정 프로토콜(Address Resolution Protocol)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48비트 네트워크 카드 주소를 뜻한다.DHCP동적 호스트 구성 프로토콜(Dynaminc Host Configuration Protocol)은 호스트 IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다.네트워크 상에서 동적으로 IP 주소 및 기타 구성정보 등을 부여/관리하는 프로토콜Congestion Control: TCP관련 서비스: 과도한 양의 트래픽으로 모든 통신하는 호스트들 사이의 스위치와 링크가 폭주하게 되는 것을 방지 즉, 송,수신자 간에 전송되는 패킷들을 조절한다.네트워크 내 대기하는 패킷 수를 줄여, 혼잡을 미연에 방지하거나 제어하는 기법 / 주로, 송신측 전송률을 제어(억제)하는 방법을 많이 사용혼잡제어는 네트워크계층, 전송계층 모두 관여 / 데이터링크 계층은 흐름제어, 오류제어 등에 민감하지만 혼잡제어는 거의 관여 하지 않음Flooding홍수(flooding)는 수신되는 링크를 제외한 나머지 모든 링크로 패킷을 단순하게 복사 전송하는 일종의 무제어 포트 배정홍수 라우팅(Flood Routing)해당 패킷정보가 네트워크에 있는 모든 노드에게 도달될 때까지 계속되는 형태 따라서 플러딩은 네트워크상에 많은 부하를 일으키는 단점이 있다.(Flooding은 많은 중복된 패킷을 만드는 과정이 반복)특수한 제어패킷 송신과 같은 용도에 국한되어 사용된다.ICMP인터넷 제어 메시지 프로토콜(Internet Control Message Protocol)은 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서술하라.링크 계층이 전달할 수 있는 최대양을 MTU라 하는데 출발지와 목적지 사이의 각 링크들은 다른 링크 계층 프로토콜을 사용할 수 있고 각각의 프로토콜들이 서로 다른 MTU를 사용할 수 있다. 어떤 라우터의 출력 링크가 IP 데이터그램의 길이보다 더 작은 MTU를 가지면 IP 데이터그램을 2개 혹은 더 많은 개수의 IP 데이터그램으로 나누어서 여러 작은 데이터그램으로 전송하는 것을 단편화라고 하며, 이 조작들을 단편(fragment)이라 한다. 이 단편들은 라우터가 아닌 종단시스템에서 재결합된다.IPv4 : 라우터가 데이터그램을 단편화 시키며 인식자, 플래그, 단편화 오프셋 필드를 IP데이터그램에 넣어서 목적지에서 재결합 할 수 있도록 한다.IPv6 : 단편화와 재결합을 출발지와 목적지만이 수행, 라우터가 받은 IPv6 데이터그램이 커서 전달할 수 없다면 라우터는 데이터그램을 폐기하고 ICMP 오류메시지를 송신자에게 보내 크기를 줄여 재전송 하도록 한다.다음의 네트워크에 대하여 A에서 B 컴퓨터의 웹서버에 접속하여 index.html 파일을 가져올 때 각 네트워크 장치에서 소요되는 프로토콜 순서에 의거 설명하라.클라이언트가 IP를 가지고 있고 목적지의 IP도 알고 있으므로 DHCP, DNS 프로토콜의 작업은 생락한다.HTTP GET 메시지를 웹서버로 보내는데 사용할 TCP 소켓을 생성해야한다.소켓을 생성할 때 3-ways-handshake를 먼저 해야한다.소켓이 생성되어 준비되면 브라우저는 index.html의 URL을 포함하는 HTTP GET 메시지를 생성하여 소켓으로 보낸다. HTTP GET 메시지는 TCP 세그먼트의 페이로드가 된다.웹서버는 TCP 소켓으로부터 HTTP GET 메시지를 읽고 HTTP 응답 메시지를 생성하여 웹페이지의 내용을 HTTP 응답메시지의 BODY에 포함시켜서 TCP 소켓으로 보낸다.클라이언트 브라우저는 HTTP 응답메시지를 읽어서 웹 페이지의 HTML을 추출하여 출력한다.프로토콜 순서는 TCP/IP -> CSMA/CA -> 라우저장 장치로부터 index.html 객체를 추출한다. HTTP 응답 메시지에 그 객체를 캡슐화 한다. 그리고 응답 메시지를 소켓을 통해 클라이언트로 보낸다.HTTP 서버는 TCP에게 TCP 연결을 끊으라고 한다.( 그러나 실제로 TCP 클라이어언트가 응답 메시지를 올바로 받을 때 까지 연결을 끊지 않는다.)HTTP 클라이언트가 응답 메시지를 받으면, TCP는 연결이 중단된다. 메시지는 캡슐화된 객체가 HTML 파일인 것을 나타낸다. 클라이언트는 응답메세지로부터 파일을 추출하고 HTML 파일을 조사하고 저장한다.다음의 네트워크에서 각 라우터는 RIP방식을 사용한다.초기의 라우팅 테이블이 결정되는 과정을 보여라.라우팅 테이블이 안정되었을 때 AB간의 비용 1의 링크가 추가되었다. 이때 라우팅 테이블의 변화과정을 보여라.802.111 무선랜에서는 CSMA/CA를 사용한다. CSMA/CA의 동작과 충돌에 대하여 설명하고 CSMA/CD를 사용하지 않는 이유를 밝혀라.# CSMA(Carrier Sense Multiple Access) : 매체감지 – 매체가 유휴상태일 때 전송# CD(Collision Detection) : 충돌검출 – 다른 노드가 프레임을 전송 중이면 랜덤시간동안 대기후 처리과정을 반복# CA(Collision Avoidance) : 충돌회피 – 전파 신호는 감쇠가 크므로 충돌을 감지하기가 힘들기 때문에 충돌을 회피하는 방식을 사용어댑터는 데이터그램을 프레임화 한다. 채널이 유휴함을 감지하면 프레임 전송을 시작한다. 브로드캐스트 채널을 통해서 다른 노드로부터 신호전송에너지를 감지되지 않으면 전송을 완료하고, 감지되면 자신의 프레임 전송을 취소한다. 취소한 후 랜덤한 시간을 대기하고 다시 전송을 한다.랜덤한 시간을 대기하는 이유는, 두 노드가 동시에 프레임을 전송하고 취소하게 되면 계속 충돌하기 때문이다.이것이 CSMA/CD의 동작과정인데 무선링크인 CSMA/CA는 충돌을 감지하는 링크가 없다. 그래서 충돌을 피하는 개념으로 무선전파를 계속 쏴, 충돌여부팅 알고리즘네트워크에 대한 완벽한 글로벌 경로를 가지고 출발지와 목적지 사이의 최소비용경로를 계산한다. 다익스트라 알고리즘 사용거리벡터(DV) 라우팅 알고리즘최소비용경로는 반복적이고 분산된 방식으로 수행된다. 각 노드는 링크에 직접 연결된 링크의 비용에 대한 정보만 가지고 있다.라우팅 알고리즘의 목적은 최소비용으로 출발지 라우터에서 목적지 라우터까지 갈 수 있는 경로를 탐색하는 것이다.LS는 Link State 링크상태 알고리즘이다. 글로벌 라우팅 알고리즘이라고도 하는데 이것은 네트워크에 대한 모든 링크와 노드의 연결, 비용을 완벽히 알고 출발지와 목적지 사이의 최소비용 경로를 계산하는 것이다.DV는 Distance Vector 거리벡터 알고리즘이다. 분산 라우팅 알고리즘이라고 불리는데 이것은 노드가 모든 네트워크의 비용에 대한 완벽한 정보를 가지고 있지 않기 때문이다. 최소비용경로의 계산을 반복적이고 분산된 방식으로 수행한다. 각 노드는 직접 연결된 노드가 주는 정보로 계산하고, 옆 노드에게 계산 결과를 알린다는 점이 분산적이다. RIP과 ISO등의 라우팅 프로토콜에 사용된다.무한 카운트 문제를 해결하기 위해 포이즌 리버스를 사용한다.(그림나와있고) A컴퓨터로부터 DSLAB 웹페이지에 접속하는 과정에서 사용된 프로토콜을 나열하고 간략히 서술하시오.(문제에서 정해지지 않은 부분은 임의로 지정해서 작성하시오): p.92: IE로 dslab.pknu.ac.kr에 접속하여 첫 페이지가 화면에 나타날 때까지 수행되는 프로토콜에는 HTTP와 TCP가 있다.HTTP는 인터넷에서 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위해 사용된다. 클라이언트 프로그램과 서버 프로그램은 HTTP 메시지를 교환함으로써 서로 대화한다. 우선 웹 클라이언트(브라우저)가 특정 웹 페이지에 대한 전송을 웹 서버에 요청한다. 그러면 웹 서버는 해당 웹 문서의 내용을 적절한 헤더 파일과 함께 전송함으로 응답한다. 이 때, HTTP는 클라이언트의 요청에 서버가 응답한 후 클라이언트와전부 기술하기응용층 : 다른 종단간에 있는 같은 프로세스가 서로 메시지를 교환하는 방법을 정의한다.교환 메시지 타입, 여러 메시지타입의 문법, 필드의 의미SMTP : 전자메일 전송 프로토콜Telnet : 원격접속 프로토콜HTTP : 웹브라우저와 웹서버의 프로토콜, TCP를 사용하여 신뢰성 있는 연결을 한다. 비연결성이라 연결이 종료되면 다시 TCP연결을 해야하는데 쿠키를 사용해 이 과정을 간소화한다.FTP : 파일전송 프로토콜전송층 : AL층과 데이터를 교환한다. / 데이터를 캡슐화한다.(세그먼트) / 헤더에 목적지 주소를 넣는다.TCP : 신뢰적 전송서비스, 가장 좋은 경로를 찾아준다. / 호스트대 호스트 전달을 프로세스대 프로세스 전달로 확장한다. / 혼잡제어와 핸드세이킹을 통해 신뢰성 있는 전달을 약속한다.# 핸드세이킹 : 처음 2개의 데이터는 페이로드가 없다. 전송대기시간을 통해 RTT를 계산한다.# 혼잡제어 : 라우터가 오버플로우 되는 것을 방지한다. / 윈도 크기보다 작은 seg를 더 쪼개서 보내고 속도가 괜찮으면 늘려서 보낸다.UDP : 비신뢰적 전송서비스, 약속된 경로로만 전송을 한다. 별다른 제어 알고리즘이 없기 때문에 빠른 전송을 약속한다.네트워크층 : 포워딩과(다음 라우터 경로) 라우팅(종단간 패킷 경로), IP 단편화를 수행한다.IP : 인터넷 프로토콜, 인터넷에서 포워딩과 주소체계# 데이터그램 구조# 단편화 : 링크계층의 MTU에 맞게 데이터그램을 조각화, 오프셋으로 순서를 보여주고 플래그는 다음 단편화 패킷이 있다는 것을 보여준다.단점 : 많은 비용이 소모된다. / 라우터를 복잡하게 하고, 해킹코드를 단편화해 통신할 수 있다.ICMP : 오류메시지 전송RIP : 라우팅 프로토콜 / DV 알고리즘을 사용한다.DHCP : 동적 아이피 할당 프로토콜링크층 : 노드대 노드 통신을 담당한다.PPPHDLC채널분할 프로토콜 : FDM. TDM, CDM랜덤접속 프로토콜 : CSMA/CD, CSMA/CAARP : mac주소 IP주소 교환 프로토콜물리층달
컴네 족보 정리 용어정리 프로토콜 : 둘 이상의 통신 개체 간의 교환되는 메시지 포맷과 순서뿐 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동을 정의한다. 연결지향 서비스(Connection oriented service) (p.214) : 신뢰성이 높은 서비스로, 데이터를 전송하기 전에 연결을 미리 설정하고 설정된 연결을 이용해 서비스한 후 서비스를 마치면 다시 연결을 해제하는 방식이다. (TCP 3ways 핸드쉐이킹) : TCP는 연결지향 서비스 1:1로 연결 상태를 유지하여 통신 // 세그먼트, 프로토콜에 의해 연속적으로 패킷의 상태정보 유지, 신뢰성. 1:1 : UDP는 비연결지향 서비스 주소를 가지고 다음 라우터나 목적지로 전달만 하여 데이터그램에 대해 관여하지 않음 // 데이터그램, 각각의 패킷들이 독립적, 비신뢰성, 일대다, 다대다 : IP는 비연결지향 상위계층에서 패킷을 받아 캡슐화 한 후 아래 계층으로 전달 : TCP는 비 신뢰성인 IP 데이터그램을 통해 손상시키지 않고 목적지로 전달 따라서 신뢰성을 가지기 위해 IP 서비스에서 3가지 추가 TCP 세그먼트 내의 checksum 제공 : 데이터 전송 도중 손상 X 각 바이트마다 일정한 sequence number할당, 데이터 순서대로 도착하지 않을 경우 바로잡을 수 있다. 모든 세그먼트가 잘 도착했는지 알기 위해 Acknowledment & retransmission 메커니즘 제공 : UDP는 신뢰성 없는 비연결 서비스 IP에 두가지 기능 추가 선택적 checksum : 자신의 고유 헤더와 데이터 보호 포트 : 데이터를 올바른 목적지 어플리케이션에 역 다중화 하는 방법 제공 P2P : 일반적인 server-client 방식에서는 client가 요청하는 File이 항상 server에 존재해야 되기 때문에 요청하는 숫자가 많으면 server에 부하가 많이 걸리게 된다. P2P의 경우는 File의 요청이 들어오면 해당 File을 가져간 client의 주소를 알려줘서 항상 server가 해당 Fil장하지 않음 Flow Control O X Congestion Control O X TCP의 Cumulative ACK(누적 확인 응답) : go back N : 현재까지 수신된 바이트들을 단 하나의 ACK로 일괄 확인 응답 하는 것 : TCP 헤더의 32비트 ACK 필드에서 구현 : 수신측 중간 세그먼트 손실이면 그 뒤 세그먼트는 보관, 현재까지 수신된 세그먼트 중 연속된 세그먼트로의 마지막만 누적확인 응답을 한다. : 비 연속적 수신된 세그먼트(중간 손실) 이면 중간 손실부터 다시 재전송을 시작되는 등 심각한 성능 저하 발생 CF) 선택적 확인 응답(Selective Ack) : selective repeat : 여러 세그먼트 중 손실된 세그먼트만 선택적으로 확인응답하는 방식 Transport 계층의 multiplexing & Demultiplexing(다중화 역다중화) : ‘호스트-대-호스트 전달’을 ‘프로세스-대-프로세스 전달’로 확장하는 것을 트렌스포트 계층 다중화와 역다중화라고 부른다.트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업을 역다중화라고 한다.각 데이터에 헤더정보로 캡슐화하고 그 세그먼트들을 네트워크 계층으로 전달하는 작업을 다중화라고 한다. Multiplexing : 출발지 호스트에서 소켓들로부터 데이터들을 모으고, 그 세그먼트를 생성하기 위해서 각 데이터에 헤더 정보로 캡슐화하고, 그 세그먼트들을 네트워크 계층으로 전달하는 작업 Demultiplexing : 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업 Data Link계층과 Transport 계층의 오류 검출 데이터링크 계층이나 트랜스포트 계층 모두 송신 후에 답장을 받아 오류 검출을 한다. 데이터링크 계층은 물리적으로 연결 되어 있기 때문에 답장이 오는 시간을 예측할 수 있고 답장이 오지 않을 경우 재전송을 통해 오류를 해결한다. 그러나 트랜스포트 계층의 경우 논리적으로 연결이 되어 있기 때문에 답장이 오는 시간을 예측하기 어렵다. 그렇기 때문에인터넷 전자우편 표준 프로토콜 : 공통점 한 호스트에서 다른 호스트로 파일을 전송하는데 이용된다. HTTP : 웹서버 -> 웹브라우저 / SMTP : 메일서버 -> 메일서버 지속 HTTP와 SMTP 모두 지속연결을 사용 : 차이점 HTTP SMTP 프로토콜 특성 Pull 프로토콜 서버 사용자 Ex) 누군가 서버에 정보를 올리고 사용자가 편의에 의해서 서버로부터 정보를 가져오기 위해 HTTP 사용 TCP연결은 파일을 수신할 컴퓨터가 초기화 Push 프로토콜 서버 서버 Ex) 송신메일서버가 파일수신 메일서버로 보낸다 TCP 연결은 파일을 보내는 컴퓨터에서 초기화 메시지 포맷 제한없음 7bit ASCII 포맷 텍스트와 미디어 문서로 구성된 문서를 다루는 방법 HTTP 응답 메시지에 각 객체를 캡슐화 모든 메시지의 객체를 한 메시지로 만든다 HTTP의 stateless 극복방법 : HTTP 서버는 클라이언트의 정보를 유지하지 않는다. 클라이언트가 서버에 객체를 요구하고 얼다 있다 다시 같은 객체를 요구하면 서버는 한번 더 객체를 클라이언트에게 보낸다.(쿠키) : HTTP 서버는 상태를 유지하지 않는다. 이것은 서버 설계를 간편하게 하고 동시에 수천 개의 TCP연결을 다룰 수 있는 고성능의 웹 서버를 개발하게 해주었다. 그러나 웹 사이트가 사용자를 확인하는 것이 바람직 할 때가 있다. 이 목적으로 HTTP는 쿠키를 사용한다. 쿠키는 사이트가 사용자를 추적하도록 해준다. - 쿠키 1) 웹 브라우저에서 저장할 수 있는 작은 공간 2) 개발자가 프로그램에 필요한 정보를 임시적으로 저장할 수 있다. 3) 만료날짜를 지정하여 언제까지 데이터가 유지될 지를 결정할 수 있다. - 쿠키 기술의 4가지 요소 1) HTTP 응답 메시지 쿠기 헤더라인 2) HTTP 요청 메시지 쿠키 헤더라인 3) 사용자의 브라우저에 사용자 종단 시스템과 관리를 지속시키는 쿠키파일 4) 웹사이트의 백엔드 데이터 베이스 : 쿠키는 사용자 식별에 사용할 수 있다. 사이트에 처음으로 사용자가 방문하면 사용자는 a를 전송한다. 전송 도중 지속적으로 Window size를 ACK 헤더에 포함해서 보내면서 Flow Control을 한다. : 호스트와 네트워크상의 데이터를 처리하는 혼잡제어와 달리 Flow Control은 호스트와 호스트 간 데이터를 처리하여 속도를 일치시키는 서비스이다. TCP는 송신자가 수신자의 버퍼를 오버플로 시키는 것을 방지하기 위해서 Flow Control 서비스를 제공한다. TCP는 송신자가 수신 윈도 변수를 유지하여 흐름제어를 제공한다. 수신 윈도는 수신측에서 가용한 버퍼 공간이 얼마나 되는지를 송신자에게 알려주는데 사용한다. 수신측에서 송신측에게 보낼 패킷 양을 보내주면 수신측에서는 정해진 양 이하의 패킷을 수신한다. TCP와 UDP 를 비교 설명하고 어떤 서비스에 적합한지 쓰라. : TCP는 연결형 프로토콜, UDP는 비 연결형 프로토콜 : UDP(User Datagram Protocol) : TCP : 비신뢰적 비연결형 서비스 UDP – 스트리밍 멀티미디어 (손실내성, 속도민감) : 신뢰적 연결지향형 서비스 TCP – 텍스트 등의 데이터 통신 : 기본 서비스 – 종단 대 종단 전달(다중화와 역다중화), 헤더 오류검출필드를 포함하여 무결성검사 제공/ TCP만의 추가 서비스 – 신뢰적인 데이터 전달(흐름제어, 순서번호, 확인응답, 타이머, 혼잡제어) Client-Server system 과 P2P system 을 비교 설명하라. : 클라이언트-서버의 경우 피어의 수가 증가함에 따라 분배시간이 선형적으로 그리고 한계없이 증가하는 것을 알 수 있다. 그러나 P2P 구조의 경우, 최소 분배 시간이 클라이언트-서버 구조의 분배 시간보다 항상 작지는 않다. 또한 임의의 피어수 N에 대해서 한 시간보다 작다. 따라서 P2P 구조는 자가 확장성을 가진다. 이 확장석의 피어가 비트의 소비자이자 재분배자인 것의 직접적인 결과다. Client-Server system : 애플리케이션들 모두가 항상 켜져있는 기반구조 서버에 의존한다. : 클라이언트 프로그램은 한rver로부터 Syn과 ACK를 받으면 ACK를 보내면서 Data를 함께 보내게 된다. 이 때 Flow Control을 위한 Window Size와 그 외 정보들을 함께 보내게 된다. TCP는 Cumulative ACK를 이용하는데 전송도중 발생하는 lost는 이를 이용하여 찾아낸다. 그 외에도 Time-out을 이용하여 lost에 의한 data 손실을 막는다. Time-out의 시간은 RTT에 의해서 결정된다. Seq의 경우 실제로 32bit의 공간을 차지하는데, 이렇게 큰 공간이 필요한 이유는 Seq를 이용하여 연결을 가로채는 것을 막기위해 보안상 사용한다. 모든 전송이 완료되면 Server나 Client중 어느 쪽이나 연결을 끝낼 수가 있다. 이 때 Fin을 보내게 되고 Fin과 ACK를 받으면 다시 ACK를 보내면서 연결을 종료한다. 이때 ACK가 도착하지 않더라도 기다리지 않고 연결을 종료하게 된다. 여기서는 Server가 “Hello World”라는 문자열을 전송하는 것이기 때문에 Client가 Sever와 Connection이 일어나면 Server가 “Hello World”를 전송을 완료하면 Server에 의해 연결이 종료된다. Client의 AL은 Server로 온 Data를 읽어서 Process에 의해 문자열을 처리하여 화면에 출력 등 특정 동작을 수행하게 될 것이다. 패킷 교환 네트워크에서의 전체 노드 지연을 일으키는 각각의 지연을 기술하고 간략하게 설명하시오. : - 처리지연(processing delay) : 패킷의 헤더를 조사하고 그 패킷을 어디로 보낼지를 결정하는 시간 - 큐잉지연(queueing delay) : 패킷은 큐에 저장을 한 후 순차적으로 전송 이 때 이 전송을 기다리는 시간이 바로 큐잉 지연 / 라우터가 네트워크 상의 혼잡도에 따라 전송량을 결정하므로 혼잡도에 의존(혼잡도 : 패킷의 많고 적음) - 전송지연(transmission delay) : 송신자가 보내고 싶은 전송량과 해당 통신 라인을 통해 보낼 수 있는 전송량이 다.
시스템 프로그래밍 기말전체 구조M-PMacro 포함된 Assembly -> [매크로프로세서 -> 매크로 없는 일반 어셈블리 -> 어셈블러] -> 0,1: M-A 매크로 어셈블러-> [Linkage editor(Linker 프로그램) -> Load module(파일) -> Module Loader(프로그램)] -> CPU: 상대로더매크로 프로세서의 구조형식 인수표(ALA)인수 목록은 패스 1과 패스 2에서 모두 사용되지만 각기 다른 기능을 한다.패스 1에서 만드는 목록을 형식 인수표, 패스 2에서 만드는 것을 실인수표패스 1에서는 매크로 확장 시 인수의 치환을 간단히 하기 위해서 매크로 정의 내의 형식 인수를 매크로 정의 줄에 나타난 위치 값으로 치환 표시한다. 매크로 정의 줄 위에서 i번째의 형식 인수는 번호 #i로 표현되어 인수 목록에 기록된다.이 번호를 참조하여 매크로 정의 내의 모든 형식 인수가 색인 번호로 치환되어 MDT에 수록된다.레이블 형식인수는 꼭 넣어야 한다.실인수표MDT에 저장된 색인 기호는 패스2에서 매크로 호출시에 주어진 실인수 값으로 치환되어야 하는데, 이 대응 관계를 패스2의 실인수표에 기록한다. 즉, 형식 인수표를 만들 때와 마찬가지로 실인수에 번호를 부여한다.매크로 정의표에 있는 매크로 내용을 확장할 때, 인수 번호가 있으면 이 번호에 해당하는 실인수를 실인수표에서 찾아 기입할 수 있다.이와 같이 형식 인수표와 실인수표를 사용하면 매크로 확장 시에 인수값 치환이 수월하게 된다.매크로 정의표(MDT) = 프로그램 정의표MDT에는 매크로 정의 부분의 모든 줄이 저장되게 된다.지시어 ENDM은 패스 1에서 정의의 끝을 표시하는데 사용된다.매크로의 이름부터 ENDM까지 저장, 아규먼트는 치환되어 저장된다.매크로 이름표(MNT)MNT는 패스 2에서 매크로 호출의 여부를 빠르게 검색하기 위해서 참조되는 표이다. 각 MNT의 행에는 매크로의 이름과 그 매크로의 정의가 시작되는 MDT내의 행 번호 값이 들어있다.매크로 정의표 계수기(MDTC : macro definition table counter)MDT내의 행 번호 지정을 위한 변수매크로 이름표 계수기(MNTC : macro name table counter)MNT내의 행 번호 지정을 위한 변수스택, 실인수의 개수(N)매크로내의 매크로 호출을 처리하기 위해 사용되며, 스택에는 실인수와 매크로 정의표가 포함된다.매크로 정의표 포인터(MDTP : macro definition table pointer)매크로 확장 시에, 현재 확장되고 있는 MDT내의 문장의 위치 지정을 위해 쓰이는 변수로더의 기능 4가지 / 상대로더는 무엇이 하는가로더는 프로그램들을 기억장치에 놓고 수행할 수 있도록 준비하는 프로그램Allocation : 기억장소 할당 (어디가 비어있는지 찾음)Linking : 목적 프로그램 간의 기호적 호출 연결Relocaiton : 주소, 상수값 같이 주소에 종속되는 부분을 할당된 기억 장소에 일치하도록 조정하는 재배치 (원시프로그램의 상대주소를 절대주소로 변경)Loading : 실제적 기계어 명령들과 자료를 기억 장치에 적재로더싱대로더절대로더모듈로더Allocation로더프로그래머로더Relocation로더번역기로더Linking로더프로그래머링커Loading로더로더로더로더의 구조로더가 링크와 재배치 작업을 하기 위해 어셈블러는 여러 정보를 제공해야한다.번역된 목적 코드의 모듈들(op코드) – 목적코드로 된 외부 모듈모듈의 길이 – 외부기호표: 상대주소를 통해 기호표에서 확인 가능 SD다른 모듈에서 정의되고, 이 모듈에서 이용되는 외부기호 – 외부기호표: extrn 외부에 있다는 정보 ER이 모듈에서 정의된 기호(public) – 외부기호표: 모듈에 있지만 외부에서 쓴다 LD재배치 되어야할 주소(기호) 값들과 그 수정 방법 – 재배치 링크표: 재배치 비트, 재배치 표어셈블러원시프로그램 형태사용자가 extrn(다른 모듈 내에 정의되어 있는 기호 참조), public(내부에서 정의되어 있는 기호를 외부에서 참조)Extrn 이름:형 이때 이름이 데이터 세그먼트 또는 기타 세그먼트 내의 심벌이면 형은 BYTE(256), WORD(66536), DWORD(256^4) / 이름이 프로시저 이름이면 형은 NEAR(동일 세그먼트), FAR(다른 세그먼트) / 이름이 EQU 또는 = 기호에 의해 정의된 상수이면 형은 ABS번역된 프로그램의 형태 : 재배치 비트, 재배치 표 필요절대상수(빼기), 재배치 상수(재배치 필요)번역된 프로그램상대주소, 재배치 비트, 상대주소 계산 가능한건 계산한 것으로어셈블러는 모듈별로 외부 기호표와 재배치 링크표를 제공한다외부 기호표기호표에서 기호의 분류를 나타낼 떄 SD(segment definition), LD(local definition), ER(external reference)로 구분한다.기호, 분류(SD,LD,ER), 상대주소, 길이(모듈의 길이)재배치 링크표상대주소, 기호, +또는-재배치 비트에 재배치가 필요한 것만 기록해둔다.패스1단순 링크단순히 상대 주소만 연속적으로 연결하였지, 연산항이나 데이터 값은 수정(재배치)하지 않았다.총괄 외부 기호표각 모듈별로 만들어진 외부 기호들을 종합하여 총괄 기호표를 만든다.번호가 중복되지 않도록 단순 링크된 결과에 맞게 수정 즉, 각 기호의 값은 앞에 오는 모듈의 길이만큼 커진다.메인은 빼주고 두번째 모듈은 전체 길이만큼 더해준다.기호, 주소값, 설명총괄 재배치 링크표 작성각 모듈별로 되어있는 재배치 링크표들을 하나로 합하여 총괄 제배치 링크표를 작성한다. 단순 링크된 상태를 반영하여 상대주소를 수정하여 표시한다.패스2패스 2에서는 적재 모듈을 만든다. 이 적재 모듈을 만들 때 패스 1에서 만든 총괄 외부 기호표와 총괄 재배치 링크표를 이용한다.기호의 값을 수정 (재배치)할 위치와 방법을 결정필요한 기호의 값을 찾는다.재배치 비트를 참고하여 재배치한 세그먼트 내에서 B-A 처럼 뺄 때 계산 결과는 항상 절대상수B, A가 다른 세그먼트일 경우 재배치 되는 것이 따라 다르다.링크 재배치 상수 : 모듈들이 링크하면 값이 결정적재 재배치 상수 : 적재 하여야 값이 결정되는 것로더의 적재각 주소 시작점 만큼 더해서 상대주소를 절대주소로 바꾼다.컴파일러의 구조컴파일러는 5개의 패스로 구성하면 효율적이다.에러 핸들링은 각 단계에서 발생한 에러를 다 가지고 있다가 마지막에 출력해준다.Lexical Analysis의미있는 단어로 나누어주는 역할을 한다. / 토큰 생성Syntax Analysis파스트리를 생성한다.Intermediate Code Generation파스트리를 어셈블리어로 바꾼다.Code Optimization코드를 최적화 해준다. / for문에서 변화 없는 것을 빼준다, 계산 쉬운 것으로 치환Code Generation최적화된 어셈블리어를 기계코드로 바꾼다.어셈블러의 구조어셈블러는 어셈블리어로 쓰인 원시 프로그램을 입력으로 받아 목적 프로그램을 생성하는 일을 하는데, 링커와 로더가 필요로 하는 형식에 따라 정보를 제공한다.원시프로그램(입력) : 프로그래머가 작성한 원시 프로그램명령어 표(입력) : 어셈블리 언어에 정의된 명령어들을 수록어셈블러 지시어표(입력) : 어셈블러가 작업을 할 때 필요한 내용을 명시한 지시어등을 수록기호표(출력)프로그램에 나타난 기호와 정의된 기호의 값을 알기 위해 사용되는 변수기호 / 값(상대주소) / 재배치여부위치 계수기(변수) : 명령어의 주소를 알아내기 위한 변수순수 프로시듀어, 비순수 프로시듀어자료와 같이 명령어들도 기억장치에 저장되어 자료처럼 취급될 수 있기 때문에 한 명령어의 비트 형태를 바꿈으로써 다른 명령으로 변형시킬 수 있다.비순수 프로시듀어 : 자신을 변형시키는 명령어들의 프로그램 따라서 다시 사용이 불가순수 프로시듀어 : 자신을 변형시키지 않는 프로그램 / 프로그램이 사용될 때마다 명령어들이 전과 동일 하기 위해서는 순수 프로시듀어가 필요촘스키의 언어분류에 대해서 설명하라유형문법언어인식 오토마타생성규칙언어의 예제0유형제약없는문법귀납적 가산 언어튜링 기계αAβ ->β-제1유형문맥의존문법문맥의존언어선형 구속형 비결정론적 튜링 기계αAβ -> αγβ제2유형문맥자유문법문맥자유언어비결정론적 푸시다운 오토마타A ->α제3유형정규문법정규언어유한 상태 기계A -> αBA -> α
컴퓨터 네트워크Term Project제출일2019.06.02목차 Hyperlink l "_TOC_250004" 과제 개요03가. 과제 개요03나. 전체 네트워크 구조03 Hyperlink l "_TOC_250003" 작업 환경 구성04가. 구축 환경04나. Virtual Box를 통한 가상 머신 구성04다. Vyos를 이용한 라우터 설치 및 설정 06 Hyperlink l "_TOC_250002" VM – Router – OUTSIDE 06가. 네트워크 구성도 06나. VM(example.com)의 네트워크 인터페이스 07다. Router(R1)의 인터페이스와 rule 07라. VM(com)에서 ping 테스트 08마. Outside 연결확인 08 Hyperlink l "_TOC_250001" VM 3대 – Router - Outside간의 연결 09가. 네트워크 구성도 09나. VM(com, org, edu)의 네트워크 인터페스 09다. Router(R1)의 인터페이스 09라. VM(com, org, edu)간의 ping 테스트 10마. DNS를 이용한 ping 테스트 11바. FTP 서버 테스트 / WireShark를 통한 패킷 추적 12 Hyperlink l "_TOC_250000" 3개 이상의 subnet과 3대 이상의 Router 연결 15가. 네트워크 구성도 15나. VM(com, org, edu)의 네트워크 인터페이스 15다. Router의 configuration(RIP) 16라. VM(com, org, edu)간의 ping 테스트 18마. Router 고장발생 시나리오 20바. FTP server 21사. Mail server 21아. Web server 22자. OSPF, BGP 프로토콜 설정 22차. 계산기 server 24Term Project 평가표26과제 개요과제 개요라우터로 연결된 소규모 네트워크를 구성하고 인터네의 각종 서버를 구축하여 네트워크 동작을 확인한다.전체 네트워크 구조그림 SEQ 그림 * ARABIC 1 – 전우터를 구성한다.그림 SEQ 그림 * ARABIC 3 – Virtual Box 실행 화면Virtual Machine 생성새로운 가상 머신을 설치하기 위해서는 가장 먼저 설치할 운영체제의 종류를 선택한 뒤 새 가상 머신의 이름을 짓는다. 그 후 메모리 크기를 지정해 가상머신에 할당하고 가상하드 디스크의 종류를 선택해 생성한다. 마지막으로 하드 디스크의 할당 방법 및 크기를 지정해 가상 머신 설치를 완료한다.Vyos를 이용한 라우터 설치 및 설정Vyos는 물리 하드웨어 또는 가상 머신에 설치가 가능한 오픈소스 네트워크 운영체제이다. 리눅스를 기반으로 하며 단일 관리 인터페이스로 Quagga, ISC DHCPD 및 기타 여러 응용프로그램을 결합한다.Vyos 역시 가상머신을 통해 설치를 한다. 그리고 guide에 나온방법으로 라우터를 설정해준다.그림 SEQ 그림 * ARABIC 5 – 라우터 설정VM – Router – Outside네트워크 구성도그림 SEQ 그림 * ARABIC 6 – VM – Router – Outside 네트워크 구성도VM(example.com)의 네트워크 인터페이스그림 SEQ 그림 * ARABIC 7 – com 네트워크 인터페이스Iface enp0s3 inet static : 고정 IP로 설정Address 10.10.10.2 : 현재 컴퓨터 IP를 설정Netmask 255.255.255.0 : 넷마스크 IP 설정roNetwork 10.10.10.0 : 전체 로컬 네트워크Broadcast 10.10.10.255 : 브로드캐스트 IPGateway 10.10.10.1 : 게이트웨이, 접속 입구 IPDns-nameserver 127.0.0.1 : 이 컴퓨터 자체가 네임 서버임을 의미Router(R1)의 인터페이스와 rule그림 SEQ 그림 * ARABIC 8 – R1 인터페이스와 rule 설정 및 확인VM(com)에서 Ping 테스트서브넷 안(10.10.10.1)과 구글(8.8.8.8)에 대한 ping 테스트그림 SEQ 그림 * ARABIC edu 네트워크 인터페이스Router(R1)의 인터페이스Static Routing Protocol 사용그림 SEQ 그림 * ARABIC 13 – R1 인터페이스VM(com, org, edu)간의 ping 테스트com에서 ping 테스트그림 SEQ 그림 * ARABIC 14 – com ping 테스트org에서 ping 테스트그림 SEQ 그림 * ARABIC 15 – org ping 테스트edu에서 ping 테스트그림 SEQ 그림 * ARABIC 16 – edu ping 테스트DNS를 이용한 ping 테스트그림 SEQ 그림 * ARABIC 17 – DNS ping 테스트주소 배정Example.com(10.10.10.2) / example.org(10.10.20.2) / example.edu(10.10.30.2)FTP 서버 테스트 / WireShark를 통한 패킷 추적Example.com내의 간단한 텍스트 파일 하나를 example.org로 FTP서버를 통해 이동, 이를 WireShark를 통해 패킷 추적Example.com 내의 /home/bklee/com/ 위치에 임의로 보낼 파일 생성그림 SEQ 그림 * ARABIC 18 – FTP 테스트 파일Filezilla를 통해 example.org에 연결, 전송한 후 이를 캡쳐하기 위한 WireShark 설정그림 SEQ 그림 * ARABIC 19 – Filezilla와 WireShark첫번째 시도그림 SEQ 그림 * ARABIC 20 – 파일 전송 실패전송실패 : 응답에서 550 Permission denid라는 문구그림 SEQ 그림 * ARABIC 21 – 전송실패시 WireSharkAUTH TLS, SSL : 인증 프로세스에서 TLS / SSL 클라이언트는 TLS / SSL 서버에 메시지를 보내고 서버는 서버가 자체 인증을 필요로 하는 정보로 응답USER bklee : 유저의 이름 / 보내려는 정보를 입력한 것으로 org의 유저 네임PASS *** : org 유저 bklee의 패스워드 정보 / 보안WireShark를 통한 패킷 추적에 의해서도 TYPE I 까지 전송 완료3개 이상의 Subnet과 3대 이상의 Router 연결네트워크 구성도그림 SEQ 그림 * ARABIC 23 – 3개 이상의 Subnet과 3대 이상의 Router 연결 네트워크 구성도VM(example.com, org, edu)의 네트워크 인터페스그림 SEQ 그림 * ARABIC 24 – com, org, edu 네트워크 인터페이스Router(R1, R2, R3)의 Configuration (RIP 프로토콜)RIP : 라우팅 정보 프로토콜(routing information protocol)은 경유할 가능성이 있는 라우터를 홉수로 수치화하여, DVA(Distance Vector Algorithm)라는 알고리즘으로 인접 호스트와의 경로를 동적으로 교환한다. 패킷이 목적 네트워크 주소에 도착할 때까지 최단 경로를 결정한다.R1그림 SEQ 그림 * ARABIC 25 – R1 configurationR2그림 SEQ 그림 * ARABIC 26 – R2 configurationR3그림 SEQ 그림 * ARABIC 27 – R3 configuraionVM(example.com, org, edu)간의 ping 테스트Example.com에서 org, edu로 ping 테스트와 WireShark를 이용한 패킷 추적그림 SEQ 그림 * ARABIC 28 - com에서 org로 ping 테스트그림 SEQ 그림 * ARABIC 29 - com에서 edu로 ping 테스트Example.org에서 com, edu ping 테스트와그림 SEQ 그림 * ARABIC 30 - org에서 com, edu로 ping 테스트Example.edu에서 com, org로 ping 테스트그림 SEQ 그림 * ARABIC 31 - edu에서 com, org로 ping 테스트Router 고장발생 시나리오 : R1과 R3간의 연결이 고장 났을 때고장 난 네트워크 구성R1과 R3간의 RIP 프로토콜을 끊음으로서 고장 상태Mail 서버 작동 확인Web 서버그림 SEQ 그림 * ARABIC 36 – Web 서버 확인OSPF, BGP 프로토콜 설정OSPF : 최단 경로 우선 프로토콜(Open Shortest Path First)은 인터넷 프로토콜(IP) 네트워크를 위한 Link State Routing 알고리즘을 사용, 자율 시스템에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달R1그림 SEQ 그림 * ARABIC 37 – R1 OSPF 설정R2그림 SEQ 그림 * ARABIC 38 – R2 OSPF 프로토콜 설정R3그림 SEQ 그림 * ARABIC 39 – R3 OSPF 프로토콜 설정BGP : 경계 경로 프로토콜(Border Gateway Protocol)은 인터넷에서 주 경로 지정을 담당하는 프로토콜의 한 종류이다. 인터넷에서 자율 시스템(AS) 중 라우팅 및 도달 가능성 정보를 교환하기 위해 설계된, 표준화된 외부 게이트웨이 프로토콜의 하나이다.R1그림 SEQ 그림 * ARABIC 40 – R1 BGP 프로토콜 설정R2그림 SEQ 그림 * ARABIC 41 – R2 BGP 프로토콜 설정R3그림 SEQ 그림 * ARABIC 42 – R3 BGP 프로토콜 설정계산기 서버계산기 네트워크 구조그림 SEQ 그림 * ARABIC 43 – 계산기 네트워크 구조네트워크의 IP는 10.10.10.2로 설정각각의 서버는 다른 포트번호를 주어 접속클라이언트에서 연산자를 선택하면 중계 서버는 해당 서버로 연결을 하고 클라이언트의 데이터를 전송해당 서버는 중계 서버로부터 받은 자료를 계산하고 결과값을 중계 서버로 돌려줌실행 화면그림 SEQ 그림 * ARABIC 44 – 계산기 서버 테스트컴퓨터 네트워크 term project 자가 평가표항목세부내용평가(1-5점)비고1. 개발환경packet tracer미사용Virtural Box / Vyos사용기타52. 네트워크 구성1개의 Router51개의 Router와 Static Routing은 의도한대로 작동/ 고장테스트와 다양한 네트워크 구-
컴퓨터 네트워크 Term project - 3 개의 subnet 과 라우터 구성 -목차 1 과제 개요 2 작업 환경 구성 3 VM – Router - Outside 4 VM 3 대 – Router - Outside 5 3 개 이상 Subnet, Router 연결 컴퓨터 네트워킹 Term Project01 과제 개요 1 . 과제 개요 2 . 전체 네트워크 구조과제 개요 라우터로 연결된 소규모 네트워크를 구성하고 인터넷의 각종 서버를 구축하여 네트워크 동작을 확인한다 . 전체 네트워크 구조를 구성 순차적으로 네트워크를 설계한다 . 컴퓨터 네트워킹 Term Project 과제 개요 전체 네트워크 구조02 작업 환경 구성 1 . 구축 환경 2 . Virtual Box 를 통한 가상 머신 구성 3. Vyos 를 이용한 라우터 설치 및 설정작업환경 구성 가상머신 소프트웨어 : Virtual Box 라우터 소프트웨어 : Vyos 네트워크 동작 확인용 SW : WireShark . Virtual BOX 와 VYOS 한대의 컴퓨터로 네트워크를 구성하는 것은 어렵기에 가상 SW 를 사용 컴퓨터 네트워킹 Term Project 구축 환경 Virtual Box Vyos03 VM – Router - Outside 1 . 네트워크 구성도 2 . VM(example.com) 의 네트워크 인터페이스 3. Router(R1) 의 인터페이스와 rule 4. VM(com) 에서 ping 테스트 5. Outside 연결확인VM – Router - Outside Example.com IP 를 고정 IP 로 설정 라우터를 설정하여 외부와 연결 VM 의 인터페이스를 설정 Router 의 인터페이스와 rule 설정 컴퓨터 네트워킹 Term Project 네트워크 구성도 VM, R1 의 인터페이스 ruleVM – Router - Outside 10.10.10.1 과 연결된 것을 확인 외부 구글과 연결 된 것을 확인 VM 이 라우터를 통해 외부와 연결된 것을 Web 을 통해 확인 컴퓨터 네트워킹 Term Project VM 에서 ping 테스트 Outside 연결 확인04 VM3 대 – Router - Outside 1 . 네트워크 구성도 2 . VM(com, org, org) 의 네트워크 인터페이스 3. Router(R1) 의 인터페이스 4. VM(com, org, edu) 간의 ping 테스트 5. DNS 를 이용한 ping 테스트 6. FTP 서버 테스트 / WireShark 를 통한 패킷 추적VM3 대 – Router - Outside 라우터 (R1) 한대에 모든 네트워크 연결 VM3 대와 외부를 연결 이전 VM 네트워크 인터페이스를 설정해 준 방식으로 각각의 com, org, edu 설정 - 라우터의 인터페이스 역시 설정 컴퓨터 네트워킹 Term Project 네트워크 구성도 VM R1 네트워크 인터페이스VM3 대 – Router - Outside VM(com, org, edu) 들 간의 ping 테스트 모든 VM 이 연결된 것을 확인 VM 에 DNS 를 이용한 네임을 배정한 후 네임을 통해 연결이 되는지 확인 Ping 테스트를 통해 연결된 것을 확인 컴퓨터 네트워킹 Term Project VM 간의 ping 테스트 DNS 를 이용한 ping 테스트VM3 대 – Router - Outside Example.com 내에 임의로 보낼 파일을 생성 파일 전송에 성공한 것을 확인 98 의 txt 파일 전송 성공 확인 Wireshark 를 통한 패킷 추적에 의해서도 Type I 까지 전송 완ㄹ 컴퓨터 네트워킹 Term Project FTP 서버 테스트 WireShark 를 통한 패킷 추적05 Subnet 3 개 – Router 3 대 1 . 네트워크 구성도 2 . VM(com, org, org) 의 네트워크 인터페이스 3. Router 의 configuration(RIP) 4. VM(com, org, edu) 간의 ping 테스트 5. Router 고장발생 시나리오 6. FTP 서버 / Mail 서버 / Web 서버 7. OSPF, BGP 프로토콜 설정 8. 계산기 서버VM3 대 – Router3 대 - Outside 라우터 3 대와 VM3 대 그리고 외부를 연결 라우터들 간의 라우팅 테이블 필요 라우팅 프로토콜 사용 이전 VM 네트워크 인터페이스를 설정해 준 방식으로 각각의 com, org, edu 설정 컴퓨터 네트워킹 Term Project 네트워크 구성도 VM 네트워크 인터페이스VM3 대 – Router3 대 - Outside RIP( 라우팅 정보 프로토콜 ) 을 이용하여 라우터를 설정 - R1, R2, R3 를 모두 설정 라우터를 모두 설정한 뒤 각 VM 들이 연결되었는지 ping 테스트를 통해 확인 - 각 VM 들이 연결된 것을 확인할 수 있다 . 컴퓨터 네트워킹 Term Project Router 의 configuration(RIP) VM 간의 ping 테스트VM3 대 – Router3 대 - Outside 고장난 네트워크 구성 R1 과 R3 간의 RIP 프로토콜을 끊음으로써 고장 상태 설정 - 고장이 나더라도 연결이 되는지 확인 고장이 났어도 R1 과 R3 가 연결 되어 있음을 확인 R1 과 R3 의 연결이 끊어지면서 R2 를 경유하여 연결 되었음을 확인 가능 컴퓨터 네트워킹 Term Project Router 고장발생 시나리오 고장 발생시 ping 테스트VM3 대 – Router3 대 - Outside FTP 서버 동작 확인 Mail 서버 동작 확인 Web 서버는 인터넷 창을 통해 확인 OSPF( 최단 경로 우선 프로토콜 ) 은 IP 를 위한 Link State Routing 알고리즘을 사용 라우터 (R1, R2, R3) 모두 설정 컴퓨터 네트워킹 Term Project FTP 서버 Mail 서버 Web 서버 OSPF 프로토콜 설정VM3 대 – Router3 대 - Outside BGP( 경계 경로 프로토콜 ) 은 인터넷에서 주 경로 지정을 담당하는 프로토콜의 한 종류 인터넷에서 AS 중 라우팅 및 도달 가능성 정보를 교환하기 위해 설계된 표준화된 프로토콜 계산기 서버를 만들고 각각의 연산을 위한 서버를 작성 클라이언트를 통해 계산 요청을 보내면 서버는 각 계산 서버로 정보를 보내고 결과를 서버에 전달 - 서버는 다시 결과값을 클라이언트에 전달 컴퓨터 네트워킹 Term Project BGP 프로토콜 설정 계산기 서버감사합니다 컴퓨터 네트워크 Term project - 3 개의 subnet 과 라우터 구성 -{nameOfApplication=Show}