OSI 7 모델을 공부하게 된 계기👩💻👨💻
팀 동기가 외부 API를 호출하는 인터페이스를 만들고, 해당 서버와 연결을 확인하기 위해 Ping 요청을 보냈습니다.
Ping 요청에 응답을 받아, 도메인과 방화벽이 연결되었다고 생각한 후 테스트를 진행하였습니다. 테스트는 실패하였고 원인을 파악해보니, 해당 도메인과 연결되어 있지 않았습니다.
해당 문제에 대해, 선임 분에게 질문을 하게 되었고 ping은 서버가 살아있는 지 확인 하는 용도이며, 연결 확인은 telnet을 사용해보라는 말씀을 해주셔서 추상적으로만 알던 네트워크 개념을 정리해보면 좋겠다는 생각이 들어 정리해보게 되었습니다.
취업 이전, 면접을 준비하면서 네트워크 OSI 7모델에 대해 달달달 외웠던 경험이 있습니다. 면접 준비를 하며 유명한 문제인 "특정 도메인(예를 들어, www.naver.com)을 주소창에 입력했을 때 어떤 일이 발생할까요?" 에 대한 답은 쉽게 찾아볼 수 있지만 그 답은 지금와 생각해보면 (저에게는) 상당히 '추상적'이었다는 생각이 들었습니다.
다음과 같은 상황에 있어, OSI 모델 7가지 계층에 따라 설명할 수 있다면 해당 게시글은 읽지 않으셔도 됩니다.
예) Moon이 Sun에게 이메일을 보냅니다.
자신의 노트북에 있는 이메일 애플리케이션에서 메시지를 작성하고 '발송' 버튼을 누릅니다. Sun은 자기 노트북 화면에서 이메일 소프트웨어를 통해 Moon의 이메일을 읽습니다. 이메일 전송부터 이메일 수신까지 어떤 네트워크 상호작용이 있었을까요?
해당 문제에 답을 찾기 위해 우리는 OSI 7계층 모델을 잠시 잊고, 두 대의 컴퓨터가 통신을 하는 과정부터 생각해봅시다.
디지털 신호
다전선
을 통해 컴퓨터는 통신을 할 수 있다디지털 신호
를 아날로그 신호
로 바꾸어야 전선을 통해 전달된다Phy 칩
을 통해 디지털 신호<->아날로그 신호로 바꾼다 (인코딩, 디코딩)한줄요약 : physical layer는 전선과 PHY칩을 통해 0과 1의 나열된 신호를 통신하는 계층이다
동일한 네트워크
에 있는 두 개의 장치 간 데이터 전송을 용이하게 함프레임
이라고 불리는 작업을 통해, 데이터를 전달할 때 앞 뒤에 비트를 붙여 구분자 역할을 해주는 데이터 전송기법랜카드
를 통해 구현서로 다른 두 네트워크
간 데이터 전송을 용이하게 함라우팅(routing)
: 패킷에 있는 IP주소를 이용해 길을 찾기포워딩(forwarding)
: 다음 라우터에게 데이터를 넘겨주는 작업Port
를 사용하여 컴퓨터의 프로세스까지 데이터가 도달하게 하는 모듈세션
: 통신이 시작될 때부터 종료될 때까지를 의미참고 자료
OSI 모델이란?