Protocols and AVR clock speed

Hi, I'm a newbie in stuff related to I2C and UART between Arduinos (or AVR's).
I have a question and I've googled about it without a good result.

Does the microcontroller clock speed affect communication? For example, will it work if I do an I2C connection between an Atmega328p w/16MHZ and an Attiny85 w/8MHZ ? And the same but with Serial instead (at 9600)?
Is the communication link independant from the devices clock?

Thanks for any advice.

mart256:
Is the communication link independant from the devices clock?

Thanks to the core Arduino code, the answer is yes. However, under the covers, registers need to be set to determine the speeds and the system clock speed is indeed a factor in the calculations to determine the settings. A symbol F_CPU is defined that the compiler uses as the clock speed for the calculations. This can be seen by turning on verbose compilation in the IDE. Of course it is important that the actual hardware oscillator frequency agree with the F_CPU value. A common misconception is that the system clock frequency is somehow magically and automatically determined. This is not the case, it is just hard coded in the boards.txt file and nothing ensures that it agrees with the actual hardware other than programmer diligence.

C:\Users\Jack\Documents\arduino\arduino-1.0.5\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega1284p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105