반응형 분류 전체보기77 Network layer Network layerTrnasport layer에서 받은 segment를 IP 헤더를 추가해서 datagram으로 만듦만든 다음에 내보낸다.받는 쪽은 IP 헤더 벗기고 트랜스포트 레이어에 전달함.모든 호스트와 라우터는 네트워크 레이어를 가지고 있다.라우터에서는 IP 헤더 정보를 읽고 다음 목적지 라우터를 결정함 (포워딩)네트워크 레이어의 두 핵심 기능은 포워딩과 라우팅포워딩라우팅data plane포워딩 담당인풋의 헤더 보고 아웃풋 링크를 결정함.실시간으로 포워딩 테이블 보고 어느 포트로 내보낼 지 결정control plane라우팅 담당네트워크 전체 보고 데이터 그램이 어디 어디 라우터를 거쳐서 갈지 결정함.전통적 라우팅각 라우터가 자기 라우팅 테이블을 계산SDN(software-defined netw.. 2025. 4. 25. Transport layer Transport-layer services트랜스포트 레이어는 서로 다른 호스트 간에 수 많은 멀티 홉 거치는게 아니라 로지컬하게 다이렉트로 연결된거 같이 느끼도록 하는 서비스를 제공함.(블랙박스로 보면)AL의 데이터 단위를 메세지라고 함.메세지는 AL 에서 생성된 데이터의 페이로드임.TL로 오면 이걸 잘게 작작작 쪼갬.AL에서 온 데이터는 큰 덩어리임.(일정한 크기로 잘라짐)잘라지면서 여기에 헤더 파일이 붙음.이 헤더 파일에는 포트 정보 같은데 들어감.잘게 쪼개진 데이터 단위를 세그맨트라고함이 세그먼트가 NL로 또 내려감.그러면 여기에도 헤더 파일이 붙는데, 여기에는 아이피 정보가 들어감.그래서 만들어진 새로운 정보 단위를 데이터 그램이라고 함정보가 destination까지 가면 정보가 역으로 올라감 .. 2025. 4. 25. Application layer Creating a network appedge 라인에 있는 엔드 유저가 쓰는 라인이 application layercore network의 인프라를 그대로 이용하면서 엔드 시스템에서 돌아가는 코드만 짜면 됨이렇게 하면 빠르게 프로그램이 개발됨. = high level programmingapplication layer는 core 파트는 생각하지 말고 너 자신에서의 개발에 충실해라core 파트는 걱정하지 말고 함수로 다 불러라라이브러리만 알고 있으면 된다(옛날에는 이게 안되서 오래걸리고 복잡했음)레이어링을 통해서 엔드 단에서만 프로그래밍을 하면 되는 상황이 되었다.)논리적으로 연결 당연하다고 가정하고 코딩application layer가 다른 application layer와 다이렉트로 연결되어있다고 생.. 2025. 4. 25. Introduction What’s the Internethost : 호스트는 인터넷에 연결된 모든 컴퓨터나 장치를 말한다.에이전트, 엔드 시스템, 디바이스이라고도 한다.컴퓨팅 디바이스 통칭호스트가 하는 일은 네트워크 어플리케이션을 돌리는 역할을 한다. 직접 접속하는 기기이며, 여기서 App이 돌아간다.(돌아가려면 server와 연결이 필요)노트북, 스마트폰, 서버, …communication link : 어플리케이션이 돌아가려면 서버와의 연결이 필요.커뮤니케이션 링크를 통해서 서버와 연결.노트북에서 신문사 접속하려면 수많은 커뮤니케이션 링크를 통해서 접속.링크는 어떻게 만들어지나? ⇒ 케이블(구리 → 트위스트 → 동축 → 광섬유), 무선(라디오, 위성 통신)을 통해서(wire일수도 wireless일 수도)근데 무선은 엔드 호.. 2025. 4. 25. System-Level I/O Unix I/O리눅스에서 파일은 바이트로 이루어진 녀석그래서 종류도 다양할 수 있음Regular fileDirectorySocketOpening Filesopen() 은 커널에게 “이 파일을 사용하겠다”고 알리는 시스템 호출이게 성공하면 파일 디스크립터를 반환해줌.반환값인 fd 는 해당 파일을 가리키는 식별 번호이걸로 나중에 read(), write(), close() 등을 호출함.만약에 open()이 실패하면 fd == -1 이고 에러로는 perror() 출력근데 내가 이렇게 직접 호출하기 전에 프로세스가 시작할 때 기본적으로 파일을 3개 열고 시작함.0 : stdin, 표준 입력1 : stdout, 표준 출력2 : stderr , 표준 에러 출력아무 파일을 열기 전에 기본적으로 0, 1, 2는 이미 .. 2025. 4. 21. Exceptional Control Flow: Signals and Nonlocal Jumps Shells쉘은 운영체게에서 사용자의 명령을 해석하고 실행하는 명령어 인터프리터init [1] : 시스템 부팅 시 가장 먼저 실행되는 최초의 프로세스Login shell : 사용자가 로그인하면 init 이 로그인 쉘을 실행함.Deamon : 시스템의 백그라운드에서 실행되는 특별한 프로세스기본적인 쉘 구조커맨드 라인은 사용자의 명령을 저장할 저장고프롬프트 표시는 “> “ 로 함.Fgets 를 통해서 사용자 입력 받음입력 종료 감지하면 쉘 종료그게 아니면 명령어 실행eval FunctionCopyvoid eval(char *cmdline) { char *argv[MAXARGS]; /* execve()에 전달할 명령어 리스트 */ char buf[MAXLINE]; /* 명령어를 저장할 버퍼 */.. 2025. 4. 10. 이전 1 2 3 4 ··· 13 다음 반응형