HTTP 개요 HTTP : hypertext transfer protocol HTTP는 웹의 application-layer protocol이고, client/server model을 따른다. client : HTTP 프로토콜을 사용해서 웹 오브젝트를 request하고 receive하여 브라우저를 통해 웹 오브젝트를 보여준다. server : HTTP 프로토콜을 사용해서 request에 대한 response를 생성해서 보낸다. HTTP는 TCP를 사용한다. 1. 클라이언트는 서버의 80번 포트로 TCP 연결을 시작한다. 2. 서버는 클라이언트로부터 TCP 연결을 accept한다. 3. HTTP 메시지(application-layer protocol messages)가 브라우저와 웹서버 간에 교환된다. ..
분류 전체보기
Creating a network app - end system(끝단 시스템)에서 실행되고, 네트워크와 통신한다. - 예를 들어서, 웹 서버 소프트웨어는 브라우저 소프트웨어와 통신한다. 네트워크 코어 장치용 디바이스를 작성할 필요는 없다. - 네트워크 코어 장치는 사용자 애플리케이션을 실행하지 않는다. - end systems에서 실행되는 애플리케이션은 빠른 앱 개발 및 전파(propagation)가 가능하다. Client-server paradigm 서버 - 항상 켜져 있는 호스트 - 영구적인(permanent) IP address - 확장(scaling)을 위해 데이터센터에서 사용됨 클라이언트 - 서버와 연결하고 통신함 - 일시적으로(intermittently) 연결됨 - dynamic IP addr..
Internet structure: a "network of networks" 호스트들은 Internet Service Providers (ISPs)를 통해 인터넷에 연결된다. 이 access ISPs는 상호연결(Interconnected)돼있어야한다. - 그래야 어디서든 두 호스트가 서로에게 패킷을 보낼 수 있다. 이렇게 형성된 network of networks는 매우 복잡하다. access ISPs가 수백만개의 접속용 ISPs를 어떻게 연결할 수 있을까? => 모든 접속용 ISPs를 직접 서로 연결하는 것은 확장 가능하지 않음. O(N^2)의 연결이 필요함. => 각각의 접속용 ISP를 global transit ISP 중 하나에 연결하면 연결 수를 줄이고 더 효율적인 구성 가능 여러 업체들이 gl..
인터넷 구조 Network edge: - 클라이언트와 서버, 서버는 보통 데이터센터에 위치 Access networks, physical media: - 유선 및 무선 통신 링크와 같은 접근 네트워크 및 물리적 미디어를 나타냄 Network core: - interconnected(상호연결된) 라우터, 네트워크의 네트워크 프로토콜이란? : 컴퓨터 네트워크가 통신하기 위해 사용되는 일관된(coordinated) 규칙 The network core 상호 연결된 라우터로 이뤄진 네트워크 구조. packet-switching: 호스트(클라이언트/서버)가 애플리케이션 계층 메시지를 패킷으로 나눔 네트워크가 출발지와 목적지 사이의 경로 상 다음 라우터로 패킷을 전달, 이때 패킷은 링크를 통해 전송 Two key n..
control unit은 instruction type에 따라 모든 신호의 값을 결정한다. 입력은 명령어의 opcode(instruction 31-26), 출력은 7개의 signals PCSrc는 Branch와 ALU의 Zero 신호의 AND 게이트로 결정된다. 분기명령어(Branch = 1)이고, 분기가 실행될 때(Zero = 1) target address가 PC에 기록된다. jump instruction은 먼저 (1)에서 PC의 앞 4bit를 추출한 값을 얻고, (2)에서 instruction[25-0]에 2만큼 right shift한 값을 얻은 다음 둘을 XOR연산하여 합친다. 만약 instruction의 31-26, 즉 opcode가 jump 명령어(000010)이라면 control unit에서..
ALU는 3가지 중 하나의 기능을 한다. - lw/sw 명령어는 메모리 주소를 계산하기 위해 add 연산을 함 - branch 명령어는 두 레지스터 값을 비교하기 위해 subtract 연산을 함. - R-type 명령어는 6bit funct 필드의 값에 따라 actions을 정함. 우리는 datapath 에서 ALU가 수행할 기능을 결정하는 control unit이 필요하다. - input(2bits): 이 명령어는 lw/sw , branch-equal, R-type 중 무엇인가? - input(6bits): R-type인 경우, funct 필드의 값은 무엇인가? - output(4bits): ALU가 수행하는 기능은 무엇인가? ALU Control Unit에 2bit의 ALUOp, 6bit의 Funct..
위 회로는 브랜치 분기 명령어에서 사용되는 회로다. 이는 두 가지 출력으로 나뉘는데, 예를 들어 beq $t1 8($t2)가 입력됐다고 가정하자. 첫번째 출력은 대상 주소 출력이다. 상대 주소인 8은 Sign-extend 회로로 16bit에서 32bit로 변환된다. 그 후 Shift left 2 회로로 4가 곱해져 워드 단위의 상대 주소가 된다. Adder(가산기)로써 PC+4와 합쳐져 대상 주소가 출력된다. 두번째 출력은 조건문에 따른 출력이다. Read register에 $t1과 $t2가 입력되고, Read data로 출력된다. 출력된 값은 ALU에 입력되어 subtract 연산을 수행한다. 만약 zero flag가 활성화된다면 둘은 같은 것이므로 대상 주소에 위치한 명령어가 수행된다. 1) inst..
Datapath Elements(데이터 경로 요소)에는 Instruction memory, Program counter, Adder가 있다. Instruction memory(명령어 메모리): 프로그램의 명령어를 저장하는 메모리로, 주소(입력)이 주어지면, 해당하는 명령어(출력)을 공급 Program counter: 현재 명령어의 주소를 보유하는 레지스터 Adder(덧셈기): 다음 명령어의 주소를 위해 PC를 증가시키는 논리 회로로, 산술 논리 장치(ALU)에서 수행되는 산술/비트 연산에서 구성됨 프로세서는 PC의 주소를 명령어 메모리(Instruction memory)에 입력함으로 해당 명령어(Instruction)를 가져온다. 다음 명령어를 실행하기 위해서는 PC를 증가시켜야하는데, 명령어 하나의 크..